home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / Movies.p < prev    next >
Encoding:
Text File  |  1996-09-22  |  95.5 KB  |  2,874 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Movies.p
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.5
  7.                  Release:    Universal Interfaces 2.1.4
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Movies;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MOVIES__}
  28. {$SETC __MOVIES__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MoviesIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QUICKDRAW__}
  35. {$I Quickdraw.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __ALIASES__}
  38. {$I Aliases.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __MENUS__}
  44. {$I Menus.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __COMPONENTS__}
  47. {$I Components.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __IMAGECOMPRESSION__}
  50. {$I ImageCompression.p}
  51. {$ENDC}
  52. {$IFC UNDEFINED __SOUND__}
  53. {$I Sound.p}
  54. {$ENDC}
  55.  
  56. {$PUSH}
  57. {$ALIGN MAC68K}
  58. {$LibExport+}
  59.  
  60. {   "kFix1" is defined in FixMath as "fixed1"   }
  61. {  error codes are in Errors.[haa]  }
  62. {  gestalt codes are in Gestalt.[hpa]  }
  63.  
  64. CONST
  65.     MovieFileType                = 'MooV';
  66.  
  67.     MediaHandlerType            = 'mhlr';
  68.     DataHandlerType                = 'dhlr';
  69.  
  70.     VideoMediaType                = 'vide';
  71.     SoundMediaType                = 'soun';
  72.     TextMediaType                = 'text';
  73.     BaseMediaType                = 'gnrc';
  74.     MPEGMediaType                = 'MPEG';
  75.     MusicMediaType                = 'musi';
  76.     TimeCodeMediaType            = 'tmcd';
  77.     SpriteMediaType                = 'sprt';
  78.     TweenMediaType                = 'twen';
  79.     ThreeDeeMediaType            = 'qd3d';
  80.     HandleDataHandlerSubType    = 'hndl';
  81.     ResourceDataHandlerSubType    = 'rsrc';
  82.  
  83.     VisualMediaCharacteristic    = 'eyes';
  84.     AudioMediaCharacteristic    = 'ears';
  85.     kCharacteristicCanSendVideo    = 'vsnd';
  86.  
  87.     DoTheRightThing                = 0;
  88.  
  89.  
  90. TYPE
  91.     MovieRecordPtr = ^MovieRecord;
  92.     MovieRecord = RECORD
  93.         data:                    ARRAY [0..0] OF LONGINT;
  94.     END;
  95.  
  96.     Movie                                = ^MovieRecord;
  97.     TrackRecordPtr = ^TrackRecord;
  98.     TrackRecord = RECORD
  99.         data:                    ARRAY [0..0] OF LONGINT;
  100.     END;
  101.  
  102.     Track                                = ^TrackRecord;
  103.     MediaRecordPtr = ^MediaRecord;
  104.     MediaRecord = RECORD
  105.         data:                    ARRAY [0..0] OF LONGINT;
  106.     END;
  107.  
  108.     Media                                = ^MediaRecord;
  109.     UserDataRecordPtr = ^UserDataRecord;
  110.     UserDataRecord = RECORD
  111.         data:                    ARRAY [0..0] OF LONGINT;
  112.     END;
  113.  
  114.     UserData                            = ^UserDataRecord;
  115.     TrackEditStateRecordPtr = ^TrackEditStateRecord;
  116.     TrackEditStateRecord = RECORD
  117.         data:                    ARRAY [0..0] OF LONGINT;
  118.     END;
  119.  
  120.     TrackEditState                        = ^TrackEditStateRecord;
  121.     MovieEditStateRecordPtr = ^MovieEditStateRecord;
  122.     MovieEditStateRecord = RECORD
  123.         data:                    ARRAY [0..0] OF LONGINT;
  124.     END;
  125.  
  126.     MovieEditState                        = ^MovieEditStateRecord;
  127.     SpriteWorldRecordPtr = ^SpriteWorldRecord;
  128.     SpriteWorldRecord = RECORD
  129.         data:                    ARRAY [0..0] OF LONGINT;
  130.     END;
  131.  
  132.     SpriteWorld                            = ^SpriteWorldRecord;
  133.     SpriteRecordPtr = ^SpriteRecord;
  134.     SpriteRecord = RECORD
  135.         data:                    ARRAY [0..0] OF LONGINT;
  136.     END;
  137.  
  138.     Sprite                                = ^SpriteRecord;
  139.     SampleDescriptionPtr = ^SampleDescription;
  140.     SampleDescription = RECORD
  141.         descSize:                LONGINT;
  142.         dataFormat:                LONGINT;
  143.         resvd1:                    LONGINT;
  144.         resvd2:                    INTEGER;
  145.         dataRefIndex:            INTEGER;
  146.     END;
  147.  
  148.     SampleDescriptionHandle                = ^SampleDescriptionPtr;
  149.     QTAtomContainer                        = Handle;
  150.     QTAtom                                = LONGINT;
  151.     QTAtomType                            = LONGINT;
  152.     QTAtomID                            = LONGINT;
  153.     SoundDescriptionPtr = ^SoundDescription;
  154.     SoundDescription = RECORD
  155.         descSize:                LONGINT;                                {  total size of SoundDescription including extra data  }
  156.         dataFormat:                LONGINT;                                {    }
  157.         resvd1:                    LONGINT;                                {  reserved for apple use  }
  158.         resvd2:                    INTEGER;
  159.         dataRefIndex:            INTEGER;
  160.         version:                INTEGER;                                {  which version is this data  }
  161.         revlevel:                INTEGER;                                {  what version of that codec did this  }
  162.         vendor:                    LONGINT;                                {  whose  codec compressed this data  }
  163.         numChannels:            INTEGER;                                {  number of channels of sound  }
  164.         sampleSize:                INTEGER;                                {  number of bits per sample  }
  165.         compressionID:            INTEGER;                                {  sound compression used, 0 if none  }
  166.         packetSize:                INTEGER;                                {  packet size for compression, 0 if no compression  }
  167.         sampleRate:                Fixed;                                    {  sample rate sound is captured at  }
  168.     END;
  169.  
  170.     SoundDescriptionHandle                = ^SoundDescriptionPtr;
  171.     TextDescriptionPtr = ^TextDescription;
  172.     TextDescription = RECORD
  173.         descSize:                LONGINT;                                {  Total size of TextDescription }
  174.         dataFormat:                LONGINT;                                {  'text' }
  175.         resvd1:                    LONGINT;
  176.         resvd2:                    INTEGER;
  177.         dataRefIndex:            INTEGER;
  178.         displayFlags:            LONGINT;                                {  see enum below for flag values }
  179.         textJustification:        LONGINT;                                {  Can be: teCenter,teFlush -Default,-Right,-Left }
  180.         bgColor:                RGBColor;                                {  Background color }
  181.         defaultTextBox:            Rect;                                    {  Location to place the text within the track bounds }
  182.         defaultStyle:            ScrpSTElement;                            {  Default style (struct defined in TextEdit.h) }
  183.         defaultFontName:        SInt8;                                    {  Font Name (pascal string - struct extended to fit)  }
  184.     END;
  185.  
  186.     TextDescriptionHandle                = ^TextDescriptionPtr;
  187.     ThreeDeeDescriptionPtr = ^ThreeDeeDescription;
  188.     ThreeDeeDescription = RECORD
  189.         descSize:                LONGINT;                                {  total size of ThreeDeeDescription including extra data  }
  190.         dataFormat:                LONGINT;                                {    }
  191.         resvd1:                    LONGINT;                                {  reserved for apple use  }
  192.         resvd2:                    INTEGER;
  193.         dataRefIndex:            INTEGER;
  194.         version:                LONGINT;                                {  which version is this data  }
  195.         rendererType:            LONGINT;                                {  which renderer to use, 0 for default  }
  196.     END;
  197.  
  198.     ThreeDeeDescriptionHandle            = ^ThreeDeeDescriptionPtr;
  199.     DataReferenceRecordPtr = ^DataReferenceRecord;
  200.     DataReferenceRecord = RECORD
  201.         dataRefType:            OSType;
  202.         dataRef:                Handle;
  203.     END;
  204.  
  205.     DataReferencePtr                    = ^DataReferenceRecord;
  206. {
  207. --------------------------
  208.   Music Sample Description
  209. --------------------------
  210. }
  211.     MusicDescriptionPtr = ^MusicDescription;
  212.     MusicDescription = RECORD
  213.         descSize:                LONGINT;
  214.         dataFormat:                LONGINT;                                {  'musi'  }
  215.         resvd1:                    LONGINT;
  216.         resvd2:                    INTEGER;
  217.         dataRefIndex:            INTEGER;
  218.         musicFlags:                LONGINT;
  219.         headerData:                ARRAY [0..0] OF LONGINT;                {  variable size!  }
  220.     END;
  221.  
  222.     MusicDescriptionHandle                = ^MusicDescriptionPtr;
  223.  
  224. CONST
  225.     kMusicFlagDontPlay2Soft        = $00000001;
  226.  
  227.     dfDontDisplay                = $01;                            {  Don't display the text }
  228.     dfDontAutoScale                = $02;                            {  Don't scale text as track bounds grows or shrinks }
  229.     dfClipToTextBox                = $04;                            {  Clip update to the textbox }
  230.     dfUseMovieBGColor            = $08;                            {  Set text background to movie's background color }
  231.     dfShrinkTextBoxToFit        = $10;                            {  Compute minimum box to fit the sample }
  232.     dfScrollIn                    = $20;                            {  Scroll text in until last of text is in view  }
  233.     dfScrollOut                    = $40;                            {  Scroll text out until last of text is gone (if both set, scroll in then out) }
  234.     dfHorizScroll                = $80;                            {  Scroll text horizontally (otherwise it's vertical) }
  235.     dfReverseScroll                = $0100;                        {  vert: scroll down rather than up; horiz: scroll backwards (justfication dependent) }
  236.     dfContinuousScroll            = $0200;                        {  new samples cause previous samples to scroll out  }
  237.     dfFlowHoriz                    = $0400;                        {  horiz scroll text flows in textbox rather than extend to right  }
  238.     dfContinuousKaraoke            = $0800;                        {  ignore begin offset, hilite everything up to the end offset(karaoke) }
  239.     dfDropShadow                = $1000;                        {  display text with a drop shadow  }
  240.     dfAntiAlias                    = $2000;                        {  attempt to display text anti aliased }
  241.     dfKeyedText                    = $4000;                        {  key the text over background }
  242.     dfInverseHilite                = $8000;                        {  Use inverse hiliting rather than using hilite color }
  243.     dfTextColorHilite            = $00010000;                    {  changes text color in place of hiliting.  }
  244.  
  245.     searchTextDontGoToFoundTime    = $00010000;
  246.     searchTextDontHiliteFoundText = $00020000;
  247.     searchTextOneTrackOnly        = $00040000;
  248.     searchTextEnabledTracksOnly    = $00080000;
  249.  
  250.     k3DMediaRendererEntry        = 'rend';
  251.     k3DMediaRendererName        = 'name';
  252.     k3DMediaRendererCode        = 'rcod';
  253.  
  254. {  progress messages  }
  255.     movieProgressOpen            = 0;
  256.     movieProgressUpdatePercent    = 1;
  257.     movieProgressClose            = 2;
  258.  
  259. {  progress operations  }
  260.     progressOpFlatten            = 1;
  261.     progressOpInsertTrackSegment = 2;
  262.     progressOpInsertMovieSegment = 3;
  263.     progressOpPaste                = 4;
  264.     progressOpAddMovieSelection    = 5;
  265.     progressOpCopy                = 6;
  266.     progressOpCut                = 7;
  267.     progressOpLoadMovieIntoRam    = 8;
  268.     progressOpLoadTrackIntoRam    = 9;
  269.     progressOpLoadMediaIntoRam    = 10;
  270.     progressOpImportMovie        = 11;
  271.     progressOpExportMovie        = 12;
  272.  
  273.     mediaQualityDraft            = $0000;
  274.     mediaQualityNormal            = $0040;
  275.     mediaQualityBetter            = $0080;
  276.     mediaQualityBest            = $00C0;
  277.  
  278.  
  279. TYPE
  280.     MovieRgnCoverProcPtr = ProcPtr;  { FUNCTION MovieRgnCover(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT): OSErr; }
  281.  
  282.     MovieProgressProcPtr = ProcPtr;  { FUNCTION MovieProgress(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT): OSErr; }
  283.  
  284.     MovieDrawingCompleteProcPtr = ProcPtr;  { FUNCTION MovieDrawingComplete(theMovie: Movie; refCon: LONGINT): OSErr; }
  285.  
  286.     TrackTransferProcPtr = ProcPtr;  { FUNCTION TrackTransfer(t: Track; refCon: LONGINT): OSErr; }
  287.  
  288.     GetMovieProcPtr = ProcPtr;  { FUNCTION GetMovie(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr): OSErr; }
  289.  
  290.     MoviePreviewCallOutProcPtr = ProcPtr;  { FUNCTION MoviePreviewCallOut(refcon: LONGINT): BOOLEAN; }
  291.  
  292.     TextMediaProcPtr = ProcPtr;  { FUNCTION TextMedia(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT): OSErr; }
  293.  
  294.     MoviesErrorProcPtr = ProcPtr;  { PROCEDURE MoviesError(theErr: OSErr; refcon: LONGINT); }
  295.  
  296.     MoviesErrorUPP = UniversalProcPtr;
  297.  
  298. CONST
  299.     uppMoviesErrorProcInfo = $00000380;
  300.  
  301. FUNCTION NewMoviesErrorProc(userRoutine: MoviesErrorProcPtr): MoviesErrorUPP;
  302.     {$IFC NOT GENERATINGCFM }
  303.     INLINE $2E9F;
  304.     {$ENDC}
  305.  
  306. PROCEDURE CallMoviesErrorProc(theErr: OSErr; refcon: LONGINT; userRoutine: MoviesErrorUPP);
  307.     {$IFC NOT GENERATINGCFM}
  308.     INLINE $205F, $4E90;
  309.     {$ENDC}
  310.  
  311. TYPE
  312.     MovieRgnCoverUPP = UniversalProcPtr;
  313.     MovieProgressUPP = UniversalProcPtr;
  314.     MovieDrawingCompleteUPP = UniversalProcPtr;
  315.     TrackTransferUPP = UniversalProcPtr;
  316.     GetMovieUPP = UniversalProcPtr;
  317.     MoviePreviewCallOutUPP = UniversalProcPtr;
  318.     TextMediaUPP = UniversalProcPtr;
  319.     MediaHandler                        = ComponentInstance;
  320.     DataHandler                            = ComponentInstance;
  321.     MediaHandlerComponent                = Component;
  322.     DataHandlerComponent                = Component;
  323.     HandlerError                        = ComponentResult;
  324. {  TimeBase equates  }
  325.     TimeValue                            = LONGINT;
  326.     TimeScale                            = LONGINT;
  327.     CompTimeValue                        = wide;
  328.     CompTimeValuePtr                     = ^CompTimeValue;
  329.  
  330. CONST
  331.     loopTimeBase                = 1;
  332.     palindromeLoopTimeBase        = 2;
  333.     maintainTimeBaseZero        = 4;
  334.  
  335.  
  336. TYPE
  337.     TimeBaseFlags                        = LONGINT;
  338.     TimeBaseRecordPtr = ^TimeBaseRecord;
  339.     TimeBaseRecord = RECORD
  340.         data:                    ARRAY [0..0] OF LONGINT;
  341.     END;
  342.  
  343.     TimeBase                            = ^TimeBaseRecord;
  344.     CallBackRecordPtr = ^CallBackRecord;
  345.     CallBackRecord = RECORD
  346.         data:                    ARRAY [0..0] OF LONGINT;
  347.     END;
  348.  
  349.     QTCallBack                            = ^CallBackRecord;
  350.     TimeRecordPtr = ^TimeRecord;
  351.     TimeRecord = RECORD
  352.         value:                    CompTimeValue;                            {  units  }
  353.         scale:                    TimeScale;                                {  units per second  }
  354.         base:                    TimeBase;
  355.     END;
  356.  
  357. {  CallBack equates  }
  358.  
  359. CONST
  360.     triggerTimeFwd                = $0001;                        {  when curTime exceeds triggerTime going forward  }
  361.     triggerTimeBwd                = $0002;                        {  when curTime exceeds triggerTime going backwards  }
  362.     triggerTimeEither            = $0003;                        {  when curTime exceeds triggerTime going either direction  }
  363.     triggerRateLT                = $0004;                        {  when rate changes to less than trigger value  }
  364.     triggerRateGT                = $0008;                        {  when rate changes to greater than trigger value  }
  365.     triggerRateEqual            = $0010;                        {  when rate changes to equal trigger value  }
  366.     triggerRateLTE                = $0014;
  367.     triggerRateGTE                = $0018;
  368.     triggerRateNotEqual            = $001C;
  369.     triggerRateChange            = 0;
  370.     triggerAtStart                = $0001;
  371.     triggerAtStop                = $0002;
  372.  
  373.  
  374. TYPE
  375.     QTCallBackFlags                        = INTEGER;
  376.  
  377. CONST
  378.     timeBaseBeforeStartTime        = 1;
  379.     timeBaseAfterStopTime        = 2;
  380.  
  381.  
  382. TYPE
  383.     TimeBaseStatus                        = LONGINT;
  384.  
  385. CONST
  386.     callBackAtTime                = 1;
  387.     callBackAtRate                = 2;
  388.     callBackAtTimeJump            = 3;
  389.     callBackAtExtremes            = 4;
  390.     callBackAtInterrupt            = $8000;
  391.     callBackAtDeferredTask        = $4000;
  392.  
  393.  
  394. TYPE
  395.     QTCallBackType                        = INTEGER;
  396.     QTCallBackProcPtr = ProcPtr;  { PROCEDURE QTCallBack(cb: QTCallBack; refCon: LONGINT); }
  397.  
  398.     QTCallBackUPP = UniversalProcPtr;
  399.  
  400. CONST
  401.     qtcbNeedsRateChanges        = 1;                            {  wants to know about rate changes  }
  402.     qtcbNeedsTimeChanges        = 2;                            {  wants to know about time changes  }
  403.     qtcbNeedsStartStopChanges    = 4;                            {  wants to know when TimeBase start/stop is changed }
  404.  
  405.  
  406. TYPE
  407.     QTCallBackHeaderPtr = ^QTCallBackHeader;
  408.     QTCallBackHeader = RECORD
  409.         callBackFlags:            LONGINT;
  410.         reserved1:                LONGINT;
  411.         qtPrivate:                ARRAY [0..39] OF SInt8;
  412.     END;
  413.  
  414.     QTSyncTaskProcPtr = ProcPtr;  { PROCEDURE QTSyncTask(task: UNIV Ptr); }
  415.  
  416.     QTSyncTaskUPP = UniversalProcPtr;
  417.     QTSyncTaskRecordPtr = ^QTSyncTaskRecord;
  418.     QTSyncTaskRecord = RECORD
  419.         qLink:                    Ptr;
  420.         proc:                    QTSyncTaskUPP;
  421.     END;
  422.  
  423.     QTSyncTaskPtr                        = ^QTSyncTaskRecord;
  424.  
  425. CONST
  426.     keepInRam                    = $01;                            {  load and make non-purgable }
  427.     unkeepInRam                    = $02;                            {  mark as purgable }
  428.     flushFromRam                = $04;                            {  empty those handles }
  429.     loadForwardTrackEdits        = $08;                            {     load track edits into ram for playing forward }
  430.     loadBackwardTrackEdits        = $10;                            {     load track edits into ram for playing in reverse }
  431.  
  432.     newMovieActive                = $01;
  433.     newMovieDontResolveDataRefs    = $02;
  434.     newMovieDontAskUnresolvedDataRefs = $04;
  435.     newMovieDontAutoAlternates    = $08;
  436.     newMovieDontUpdateForeBackPointers = $10;
  437.  
  438. {  track usage bits  }
  439.     trackUsageInMovie            = $02;
  440.     trackUsageInPreview            = $04;
  441.     trackUsageInPoster            = $08;
  442.  
  443. {  Add/GetMediaSample flags  }
  444.     mediaSampleNotSync            = $01;                            {  sample is not a sync sample (eg. is frame differenced  }
  445.     mediaSampleShadowSync        = $02;                            {  sample is a shadow sync  }
  446.  
  447.     pasteInParallel                = $01;
  448.     showUserSettingsDialog        = $02;
  449.     movieToFileOnlyExport        = $04;
  450.     movieFileSpecValid            = $08;
  451.  
  452.     nextTimeMediaSample            = $01;
  453.     nextTimeMediaEdit            = $02;
  454.     nextTimeTrackEdit            = $04;
  455.     nextTimeSyncSample            = $08;
  456.     nextTimeStep                = $10;
  457.     nextTimeEdgeOK                = $4000;
  458.     nextTimeIgnoreActiveSegment    = $8000;
  459.  
  460.  
  461. TYPE
  462.     nextTimeFlagsEnum                    = INTEGER;
  463.  
  464. CONST
  465.     createMovieFileDeleteCurFile = $80000000;
  466.     createMovieFileDontCreateMovie = $40000000;
  467.     createMovieFileDontOpenFile    = $20000000;
  468.  
  469.  
  470. TYPE
  471.     createMovieFileFlagsEnum            = LONGINT;
  472.  
  473. CONST
  474.     flattenAddMovieToDataFork    = $00000001;
  475.     flattenActiveTracksOnly        = $00000004;
  476.     flattenDontInterleaveFlatten = $00000008;
  477.     flattenFSSpecPtrIsDataRefRecordPtr = $00000010;
  478.  
  479.  
  480. TYPE
  481.     movieFlattenFlagsEnum                = LONGINT;
  482.  
  483. CONST
  484.     movieInDataForkResID        = -1;                            {  magic res ID  }
  485.  
  486.     mcTopLeftMovie                = $01;                            {  usually centered  }
  487.     mcScaleMovieToFit            = $02;                            {  usually only scales down  }
  488.     mcWithBadge                    = $04;                            {  give me a badge  }
  489.     mcNotVisible                = $08;                            {  don't show controller  }
  490.     mcWithFrame                    = $10;                            {  gimme a frame  }
  491.  
  492.     movieScrapDontZeroScrap        = $01;
  493.     movieScrapOnlyPutMovie        = $02;
  494.  
  495.     dataRefSelfReference        = $01;
  496.     dataRefWasNotResolved        = $02;
  497.  
  498.  
  499. TYPE
  500.     dataRefAttributesFlags                = LONGINT;
  501.  
  502. CONST
  503.     hintsScrubMode                = $01;                            {  mask == && (if flags == scrub on, flags != scrub off)  }
  504.     hintsLoop                    = $02;
  505.     hintsDontPurge                = $04;
  506.     hintsUseScreenBuffer        = $20;
  507.     hintsAllowInterlace            = $40;
  508.     hintsUseSoundInterp            = $80;
  509.     hintsHighQuality            = $0100;                        {  slooooow  }
  510.     hintsPalindrome                = $0200;
  511.     hintsInactive                = $0800;
  512.  
  513.  
  514. TYPE
  515.     playHintsEnum                        = LONGINT;
  516.  
  517. CONST
  518.     mediaHandlerFlagBaseClient    = 1;
  519.  
  520.  
  521. TYPE
  522.     mediaHandlerFlagsEnum                = LONGINT;
  523.  
  524. CONST
  525.     movieTrackMediaType            = $01;
  526.     movieTrackCharacteristic    = $02;
  527.     movieTrackEnabledOnly        = $04;
  528.  
  529.  
  530. TYPE
  531.     SampleReferenceRecordPtr = ^SampleReferenceRecord;
  532.     SampleReferenceRecord = RECORD
  533.         dataOffset:                LONGINT;
  534.         dataSize:                LONGINT;
  535.         durationPerSample:        TimeValue;
  536.         numberOfSamples:        LONGINT;
  537.         sampleFlags:            INTEGER;
  538.     END;
  539.  
  540.     SampleReferencePtr                    = ^SampleReferenceRecord;
  541. {
  542. ************************
  543. * Initialization Routines 
  544. *************************
  545. }
  546. FUNCTION EnterMovies: OSErr;
  547.     {$IFC NOT GENERATINGCFM}
  548.     INLINE $7001, $AAAA;
  549.     {$ENDC}
  550. PROCEDURE ExitMovies;
  551.     {$IFC NOT GENERATINGCFM}
  552.     INLINE $7002, $AAAA;
  553.     {$ENDC}
  554. {
  555. ************************
  556. * Error Routines 
  557. *************************
  558. }
  559. FUNCTION GetMoviesError: OSErr;
  560.     {$IFC NOT GENERATINGCFM}
  561.     INLINE $7003, $AAAA;
  562.     {$ENDC}
  563. PROCEDURE ClearMoviesStickyError;
  564.     {$IFC NOT GENERATINGCFM}
  565.     INLINE $303C, $00DE, $AAAA;
  566.     {$ENDC}
  567. FUNCTION GetMoviesStickyError: OSErr;
  568.     {$IFC NOT GENERATINGCFM}
  569.     INLINE $7004, $AAAA;
  570.     {$ENDC}
  571. PROCEDURE SetMoviesErrorProc(errProc: MoviesErrorUPP; refcon: LONGINT);
  572.     {$IFC NOT GENERATINGCFM}
  573.     INLINE $303C, $00EF, $AAAA;
  574.     {$ENDC}
  575. {
  576. ************************
  577. * Idle Routines 
  578. *************************
  579. }
  580. PROCEDURE MoviesTask(theMovie: Movie; maxMilliSecToUse: LONGINT);
  581.     {$IFC NOT GENERATINGCFM}
  582.     INLINE $7005, $AAAA;
  583.     {$ENDC}
  584. FUNCTION PrerollMovie(theMovie: Movie; time: TimeValue; Rate: Fixed): OSErr;
  585.     {$IFC NOT GENERATINGCFM}
  586.     INLINE $7006, $AAAA;
  587.     {$ENDC}
  588. FUNCTION LoadMovieIntoRam(theMovie: Movie; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  589.     {$IFC NOT GENERATINGCFM}
  590.     INLINE $7007, $AAAA;
  591.     {$ENDC}
  592. FUNCTION LoadTrackIntoRam(theTrack: Track; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  593.     {$IFC NOT GENERATINGCFM}
  594.     INLINE $303C, $016E, $AAAA;
  595.     {$ENDC}
  596. FUNCTION LoadMediaIntoRam(theMedia: Media; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  597.     {$IFC NOT GENERATINGCFM}
  598.     INLINE $7008, $AAAA;
  599.     {$ENDC}
  600. PROCEDURE SetMovieActive(theMovie: Movie; active: BOOLEAN);
  601.     {$IFC NOT GENERATINGCFM}
  602.     INLINE $7009, $AAAA;
  603.     {$ENDC}
  604. FUNCTION GetMovieActive(theMovie: Movie): BOOLEAN;
  605.     {$IFC NOT GENERATINGCFM}
  606.     INLINE $700A, $AAAA;
  607.     {$ENDC}
  608. {
  609. ************************
  610. * calls for playing movies, previews, posters
  611. *************************
  612. }
  613. PROCEDURE StartMovie(theMovie: Movie);
  614.     {$IFC NOT GENERATINGCFM}
  615.     INLINE $700B, $AAAA;
  616.     {$ENDC}
  617. PROCEDURE StopMovie(theMovie: Movie);
  618.     {$IFC NOT GENERATINGCFM}
  619.     INLINE $700C, $AAAA;
  620.     {$ENDC}
  621. PROCEDURE GoToBeginningOfMovie(theMovie: Movie);
  622.     {$IFC NOT GENERATINGCFM}
  623.     INLINE $700D, $AAAA;
  624.     {$ENDC}
  625. PROCEDURE GoToEndOfMovie(theMovie: Movie);
  626.     {$IFC NOT GENERATINGCFM}
  627.     INLINE $700E, $AAAA;
  628.     {$ENDC}
  629. FUNCTION IsMovieDone(theMovie: Movie): BOOLEAN;
  630.     {$IFC NOT GENERATINGCFM}
  631.     INLINE $303C, $00DD, $AAAA;
  632.     {$ENDC}
  633. FUNCTION GetMoviePreviewMode(theMovie: Movie): BOOLEAN;
  634.     {$IFC NOT GENERATINGCFM}
  635.     INLINE $700F, $AAAA;
  636.     {$ENDC}
  637. PROCEDURE SetMoviePreviewMode(theMovie: Movie; usePreview: BOOLEAN);
  638.     {$IFC NOT GENERATINGCFM}
  639.     INLINE $7010, $AAAA;
  640.     {$ENDC}
  641. PROCEDURE ShowMoviePoster(theMovie: Movie);
  642.     {$IFC NOT GENERATINGCFM}
  643.     INLINE $7011, $AAAA;
  644.     {$ENDC}
  645. PROCEDURE PlayMoviePreview(theMovie: Movie; callOutProc: MoviePreviewCallOutUPP; refcon: LONGINT);
  646.     {$IFC NOT GENERATINGCFM}
  647.     INLINE $303C, $00F2, $AAAA;
  648.     {$ENDC}
  649. {
  650. ************************
  651. * calls for controlling movies & tracks which are playing
  652. *************************
  653. }
  654. FUNCTION GetMovieTimeBase(theMovie: Movie): TimeBase;
  655.     {$IFC NOT GENERATINGCFM}
  656.     INLINE $7012, $AAAA;
  657.     {$ENDC}
  658. PROCEDURE SetMovieMasterTimeBase(theMovie: Movie; tb: TimeBase; {CONST}VAR slaveZero: TimeRecord);
  659.     {$IFC NOT GENERATINGCFM}
  660.     INLINE $303C, $0167, $AAAA;
  661.     {$ENDC}
  662. PROCEDURE SetMovieMasterClock(theMovie: Movie; clockMeister: Component; {CONST}VAR slaveZero: TimeRecord);
  663.     {$IFC NOT GENERATINGCFM}
  664.     INLINE $303C, $0168, $AAAA;
  665.     {$ENDC}
  666. PROCEDURE GetMovieGWorld(theMovie: Movie; VAR port: CGrafPtr; VAR gdh: GDHandle);
  667.     {$IFC NOT GENERATINGCFM}
  668.     INLINE $7015, $AAAA;
  669.     {$ENDC}
  670. PROCEDURE SetMovieGWorld(theMovie: Movie; port: CGrafPtr; gdh: GDHandle);
  671.     {$IFC NOT GENERATINGCFM}
  672.     INLINE $7016, $AAAA;
  673.     {$ENDC}
  674.  
  675. CONST
  676.     movieDrawingCallWhenChanged    = 0;
  677.     movieDrawingCallAlways        = 1;
  678.  
  679. PROCEDURE SetMovieDrawingCompleteProc(theMovie: Movie; flags: LONGINT; proc: MovieDrawingCompleteUPP; refCon: LONGINT);
  680.     {$IFC NOT GENERATINGCFM}
  681.     INLINE $303C, $01DE, $AAAA;
  682.     {$ENDC}
  683. PROCEDURE GetMovieNaturalBoundsRect(theMovie: Movie; VAR naturalBounds: Rect);
  684.     {$IFC NOT GENERATINGCFM}
  685.     INLINE $303C, $022C, $AAAA;
  686.     {$ENDC}
  687. FUNCTION GetNextTrackForCompositing(theMovie: Movie; theTrack: Track): Track;
  688.     {$IFC NOT GENERATINGCFM}
  689.     INLINE $303C, $01FA, $AAAA;
  690.     {$ENDC}
  691. FUNCTION GetPrevTrackForCompositing(theMovie: Movie; theTrack: Track): Track;
  692.     {$IFC NOT GENERATINGCFM}
  693.     INLINE $303C, $01FB, $AAAA;
  694.     {$ENDC}
  695. FUNCTION SetMovieCompositeBufferFlags(theMovie: Movie; flags: LONGINT): OSErr;
  696.     {$IFC NOT GENERATINGCFM}
  697.     INLINE $303C, $027E, $AAAA;
  698.     {$ENDC}
  699. FUNCTION GetMovieCompositeBufferFlags(theMovie: Movie; VAR flags: LONGINT): OSErr;
  700.     {$IFC NOT GENERATINGCFM}
  701.     INLINE $303C, $027F, $AAAA;
  702.     {$ENDC}
  703. PROCEDURE SetTrackGWorld(theTrack: Track; port: CGrafPtr; gdh: GDHandle; proc: TrackTransferUPP; refCon: LONGINT);
  704.     {$IFC NOT GENERATINGCFM}
  705.     INLINE $303C, $009D, $AAAA;
  706.     {$ENDC}
  707. FUNCTION GetMoviePict(theMovie: Movie; time: TimeValue): PicHandle;
  708.     {$IFC NOT GENERATINGCFM}
  709.     INLINE $701D, $AAAA;
  710.     {$ENDC}
  711. FUNCTION GetTrackPict(theTrack: Track; time: TimeValue): PicHandle;
  712.     {$IFC NOT GENERATINGCFM}
  713.     INLINE $701E, $AAAA;
  714.     {$ENDC}
  715. FUNCTION GetMoviePosterPict(theMovie: Movie): PicHandle;
  716.     {$IFC NOT GENERATINGCFM}
  717.     INLINE $303C, $00F7, $AAAA;
  718.     {$ENDC}
  719. {  called between Begin & EndUpdate  }
  720. FUNCTION UpdateMovie(theMovie: Movie): OSErr;
  721.     {$IFC NOT GENERATINGCFM}
  722.     INLINE $701F, $AAAA;
  723.     {$ENDC}
  724. FUNCTION InvalidateMovieRegion(theMovie: Movie; invalidRgn: RgnHandle): OSErr;
  725.     {$IFC NOT GENERATINGCFM}
  726.     INLINE $303C, $022A, $AAAA;
  727.     {$ENDC}
  728. { *** spatial movie routines *** }
  729. PROCEDURE GetMovieBox(theMovie: Movie; VAR boxRect: Rect);
  730.     {$IFC NOT GENERATINGCFM}
  731.     INLINE $303C, $00F9, $AAAA;
  732.     {$ENDC}
  733. PROCEDURE SetMovieBox(theMovie: Movie; {CONST}VAR boxRect: Rect);
  734.     {$IFC NOT GENERATINGCFM}
  735.     INLINE $303C, $00FA, $AAAA;
  736.     {$ENDC}
  737. { * movie display clip  }
  738. FUNCTION GetMovieDisplayClipRgn(theMovie: Movie): RgnHandle;
  739.     {$IFC NOT GENERATINGCFM}
  740.     INLINE $303C, $00FC, $AAAA;
  741.     {$ENDC}
  742. PROCEDURE SetMovieDisplayClipRgn(theMovie: Movie; theClip: RgnHandle);
  743.     {$IFC NOT GENERATINGCFM}
  744.     INLINE $303C, $00FD, $AAAA;
  745.     {$ENDC}
  746. { * movie src clip  }
  747. FUNCTION GetMovieClipRgn(theMovie: Movie): RgnHandle;
  748.     {$IFC NOT GENERATINGCFM}
  749.     INLINE $303C, $0100, $AAAA;
  750.     {$ENDC}
  751. PROCEDURE SetMovieClipRgn(theMovie: Movie; theClip: RgnHandle);
  752.     {$IFC NOT GENERATINGCFM}
  753.     INLINE $303C, $0101, $AAAA;
  754.     {$ENDC}
  755. { * track src clip  }
  756. FUNCTION GetTrackClipRgn(theTrack: Track): RgnHandle;
  757.     {$IFC NOT GENERATINGCFM}
  758.     INLINE $303C, $0102, $AAAA;
  759.     {$ENDC}
  760. PROCEDURE SetTrackClipRgn(theTrack: Track; theClip: RgnHandle);
  761.     {$IFC NOT GENERATINGCFM}
  762.     INLINE $303C, $0103, $AAAA;
  763.     {$ENDC}
  764. { * bounds in display space (not clipped by display clip)  }
  765. FUNCTION GetMovieDisplayBoundsRgn(theMovie: Movie): RgnHandle;
  766.     {$IFC NOT GENERATINGCFM}
  767.     INLINE $303C, $00FB, $AAAA;
  768.     {$ENDC}
  769. FUNCTION GetTrackDisplayBoundsRgn(theTrack: Track): RgnHandle;
  770.     {$IFC NOT GENERATINGCFM}
  771.     INLINE $303C, $0112, $AAAA;
  772.     {$ENDC}
  773. { * bounds in movie space  }
  774. FUNCTION GetMovieBoundsRgn(theMovie: Movie): RgnHandle;
  775.     {$IFC NOT GENERATINGCFM}
  776.     INLINE $303C, $00FE, $AAAA;
  777.     {$ENDC}
  778. FUNCTION GetTrackMovieBoundsRgn(theTrack: Track): RgnHandle;
  779.     {$IFC NOT GENERATINGCFM}
  780.     INLINE $303C, $00FF, $AAAA;
  781.     {$ENDC}
  782. { * bounds in track space  }
  783. FUNCTION GetTrackBoundsRgn(theTrack: Track): RgnHandle;
  784.     {$IFC NOT GENERATINGCFM}
  785.     INLINE $303C, $0111, $AAAA;
  786.     {$ENDC}
  787. { * mattes - always in track space  }
  788. FUNCTION GetTrackMatte(theTrack: Track): PixMapHandle;
  789.     {$IFC NOT GENERATINGCFM}
  790.     INLINE $303C, $0115, $AAAA;
  791.     {$ENDC}
  792. PROCEDURE SetTrackMatte(theTrack: Track; theMatte: PixMapHandle);
  793.     {$IFC NOT GENERATINGCFM}
  794.     INLINE $303C, $0116, $AAAA;
  795.     {$ENDC}
  796. PROCEDURE DisposeMatte(theMatte: PixMapHandle);
  797.     {$IFC NOT GENERATINGCFM}
  798.     INLINE $303C, $014A, $AAAA;
  799.     {$ENDC}
  800. {
  801. ************************
  802. * calls for getting/saving movies
  803. *************************
  804. }
  805. FUNCTION NewMovie(flags: LONGINT): Movie;
  806.     {$IFC NOT GENERATINGCFM}
  807.     INLINE $303C, $0187, $AAAA;
  808.     {$ENDC}
  809. FUNCTION PutMovieIntoHandle(theMovie: Movie; publicMovie: Handle): OSErr;
  810.     {$IFC NOT GENERATINGCFM}
  811.     INLINE $7022, $AAAA;
  812.     {$ENDC}
  813. FUNCTION PutMovieIntoDataFork(theMovie: Movie; fRefNum: INTEGER; offset: LONGINT; maxSize: LONGINT): OSErr;
  814.     {$IFC NOT GENERATINGCFM}
  815.     INLINE $303C, $01B4, $AAAA;
  816.     {$ENDC}
  817. PROCEDURE DisposeMovie(theMovie: Movie);
  818.     {$IFC NOT GENERATINGCFM}
  819.     INLINE $7023, $AAAA;
  820.     {$ENDC}
  821. {
  822. ************************
  823. * Movie State Routines
  824. *************************
  825. }
  826. FUNCTION GetMovieCreationTime(theMovie: Movie): LONGINT;
  827.     {$IFC NOT GENERATINGCFM}
  828.     INLINE $7026, $AAAA;
  829.     {$ENDC}
  830. FUNCTION GetMovieModificationTime(theMovie: Movie): LONGINT;
  831.     {$IFC NOT GENERATINGCFM}
  832.     INLINE $7027, $AAAA;
  833.     {$ENDC}
  834. FUNCTION GetMovieTimeScale(theMovie: Movie): TimeScale;
  835.     {$IFC NOT GENERATINGCFM}
  836.     INLINE $7029, $AAAA;
  837.     {$ENDC}
  838. PROCEDURE SetMovieTimeScale(theMovie: Movie; timeScale: TimeScale);
  839.     {$IFC NOT GENERATINGCFM}
  840.     INLINE $702A, $AAAA;
  841.     {$ENDC}
  842. FUNCTION GetMovieDuration(theMovie: Movie): TimeValue;
  843.     {$IFC NOT GENERATINGCFM}
  844.     INLINE $702B, $AAAA;
  845.     {$ENDC}
  846. FUNCTION GetMovieRate(theMovie: Movie): Fixed;
  847.     {$IFC NOT GENERATINGCFM}
  848.     INLINE $702C, $AAAA;
  849.     {$ENDC}
  850. PROCEDURE SetMovieRate(theMovie: Movie; rate: Fixed);
  851.     {$IFC NOT GENERATINGCFM}
  852.     INLINE $702D, $AAAA;
  853.     {$ENDC}
  854. FUNCTION GetMoviePreferredRate(theMovie: Movie): Fixed;
  855.     {$IFC NOT GENERATINGCFM}
  856.     INLINE $303C, $00F3, $AAAA;
  857.     {$ENDC}
  858. PROCEDURE SetMoviePreferredRate(theMovie: Movie; rate: Fixed);
  859.     {$IFC NOT GENERATINGCFM}
  860.     INLINE $303C, $00F4, $AAAA;
  861.     {$ENDC}
  862. FUNCTION GetMoviePreferredVolume(theMovie: Movie): INTEGER;
  863.     {$IFC NOT GENERATINGCFM}
  864.     INLINE $303C, $00F5, $AAAA;
  865.     {$ENDC}
  866. PROCEDURE SetMoviePreferredVolume(theMovie: Movie; volume: INTEGER);
  867.     {$IFC NOT GENERATINGCFM}
  868.     INLINE $303C, $00F6, $AAAA;
  869.     {$ENDC}
  870. FUNCTION GetMovieVolume(theMovie: Movie): INTEGER;
  871.     {$IFC NOT GENERATINGCFM}
  872.     INLINE $702E, $AAAA;
  873.     {$ENDC}
  874. PROCEDURE SetMovieVolume(theMovie: Movie; volume: INTEGER);
  875.     {$IFC NOT GENERATINGCFM}
  876.     INLINE $702F, $AAAA;
  877.     {$ENDC}
  878. PROCEDURE GetMovieMatrix(theMovie: Movie; VAR matrix: MatrixRecord);
  879.     {$IFC NOT GENERATINGCFM}
  880.     INLINE $7031, $AAAA;
  881.     {$ENDC}
  882. PROCEDURE SetMovieMatrix(theMovie: Movie; {CONST}VAR matrix: MatrixRecord);
  883.     {$IFC NOT GENERATINGCFM}
  884.     INLINE $7032, $AAAA;
  885.     {$ENDC}
  886. PROCEDURE GetMoviePreviewTime(theMovie: Movie; VAR previewTime: TimeValue; VAR previewDuration: TimeValue);
  887.     {$IFC NOT GENERATINGCFM}
  888.     INLINE $7033, $AAAA;
  889.     {$ENDC}
  890. PROCEDURE SetMoviePreviewTime(theMovie: Movie; previewTime: TimeValue; previewDuration: TimeValue);
  891.     {$IFC NOT GENERATINGCFM}
  892.     INLINE $7034, $AAAA;
  893.     {$ENDC}
  894. FUNCTION GetMoviePosterTime(theMovie: Movie): TimeValue;
  895.     {$IFC NOT GENERATINGCFM}
  896.     INLINE $7035, $AAAA;
  897.     {$ENDC}
  898. PROCEDURE SetMoviePosterTime(theMovie: Movie; posterTime: TimeValue);
  899.     {$IFC NOT GENERATINGCFM}
  900.     INLINE $7036, $AAAA;
  901.     {$ENDC}
  902. PROCEDURE GetMovieSelection(theMovie: Movie; VAR selectionTime: TimeValue; VAR selectionDuration: TimeValue);
  903.     {$IFC NOT GENERATINGCFM}
  904.     INLINE $7037, $AAAA;
  905.     {$ENDC}
  906. PROCEDURE SetMovieSelection(theMovie: Movie; selectionTime: TimeValue; selectionDuration: TimeValue);
  907.     {$IFC NOT GENERATINGCFM}
  908.     INLINE $7038, $AAAA;
  909.     {$ENDC}
  910. PROCEDURE SetMovieActiveSegment(theMovie: Movie; startTime: TimeValue; duration: TimeValue);
  911.     {$IFC NOT GENERATINGCFM}
  912.     INLINE $303C, $015C, $AAAA;
  913.     {$ENDC}
  914. PROCEDURE GetMovieActiveSegment(theMovie: Movie; VAR startTime: TimeValue; VAR duration: TimeValue);
  915.     {$IFC NOT GENERATINGCFM}
  916.     INLINE $303C, $015D, $AAAA;
  917.     {$ENDC}
  918. FUNCTION GetMovieTime(theMovie: Movie; VAR currentTime: TimeRecord): TimeValue;
  919.     {$IFC NOT GENERATINGCFM}
  920.     INLINE $7039, $AAAA;
  921.     {$ENDC}
  922. PROCEDURE SetMovieTime(theMovie: Movie; {CONST}VAR newtime: TimeRecord);
  923.     {$IFC NOT GENERATINGCFM}
  924.     INLINE $703C, $AAAA;
  925.     {$ENDC}
  926. PROCEDURE SetMovieTimeValue(theMovie: Movie; newtime: TimeValue);
  927.     {$IFC NOT GENERATINGCFM}
  928.     INLINE $703D, $AAAA;
  929.     {$ENDC}
  930. FUNCTION GetMovieUserData(theMovie: Movie): UserData;
  931.     {$IFC NOT GENERATINGCFM}
  932.     INLINE $703E, $AAAA;
  933.     {$ENDC}
  934. {
  935. ************************
  936. * Track/Media finding routines
  937. *************************
  938. }
  939. FUNCTION GetMovieTrackCount(theMovie: Movie): LONGINT;
  940.     {$IFC NOT GENERATINGCFM}
  941.     INLINE $703F, $AAAA;
  942.     {$ENDC}
  943. FUNCTION GetMovieTrack(theMovie: Movie; trackID: LONGINT): Track;
  944.     {$IFC NOT GENERATINGCFM}
  945.     INLINE $7040, $AAAA;
  946.     {$ENDC}
  947. FUNCTION GetMovieIndTrack(theMovie: Movie; index: LONGINT): Track;
  948.     {$IFC NOT GENERATINGCFM}
  949.     INLINE $303C, $0117, $AAAA;
  950.     {$ENDC}
  951. FUNCTION GetMovieIndTrackType(theMovie: Movie; index: LONGINT; trackType: OSType; flags: LONGINT): Track;
  952.     {$IFC NOT GENERATINGCFM}
  953.     INLINE $303C, $0208, $AAAA;
  954.     {$ENDC}
  955. FUNCTION GetTrackID(theTrack: Track): LONGINT;
  956.     {$IFC NOT GENERATINGCFM}
  957.     INLINE $303C, $0127, $AAAA;
  958.     {$ENDC}
  959. FUNCTION GetTrackMovie(theTrack: Track): Movie;
  960.     {$IFC NOT GENERATINGCFM}
  961.     INLINE $303C, $00D0, $AAAA;
  962.     {$ENDC}
  963. {
  964. ************************
  965. * Track creation routines
  966. *************************
  967. }
  968. FUNCTION NewMovieTrack(theMovie: Movie; width: Fixed; height: Fixed; trackVolume: INTEGER): Track;
  969.     {$IFC NOT GENERATINGCFM}
  970.     INLINE $303C, $0188, $AAAA;
  971.     {$ENDC}
  972. PROCEDURE DisposeMovieTrack(theTrack: Track);
  973.     {$IFC NOT GENERATINGCFM}
  974.     INLINE $7042, $AAAA;
  975.     {$ENDC}
  976. {
  977. ************************
  978. * Track State routines
  979. *************************
  980. }
  981. FUNCTION GetTrackCreationTime(theTrack: Track): LONGINT;
  982.     {$IFC NOT GENERATINGCFM}
  983.     INLINE $7043, $AAAA;
  984.     {$ENDC}
  985. FUNCTION GetTrackModificationTime(theTrack: Track): LONGINT;
  986.     {$IFC NOT GENERATINGCFM}
  987.     INLINE $7044, $AAAA;
  988.     {$ENDC}
  989. FUNCTION GetTrackEnabled(theTrack: Track): BOOLEAN;
  990.     {$IFC NOT GENERATINGCFM}
  991.     INLINE $7045, $AAAA;
  992.     {$ENDC}
  993. PROCEDURE SetTrackEnabled(theTrack: Track; isEnabled: BOOLEAN);
  994.     {$IFC NOT GENERATINGCFM}
  995.     INLINE $7046, $AAAA;
  996.     {$ENDC}
  997. FUNCTION GetTrackUsage(theTrack: Track): LONGINT;
  998.     {$IFC NOT GENERATINGCFM}
  999.     INLINE $7047, $AAAA;
  1000.     {$ENDC}
  1001. PROCEDURE SetTrackUsage(theTrack: Track; usage: LONGINT);
  1002.     {$IFC NOT GENERATINGCFM}
  1003.     INLINE $7048, $AAAA;
  1004.     {$ENDC}
  1005. FUNCTION GetTrackDuration(theTrack: Track): TimeValue;
  1006.     {$IFC NOT GENERATINGCFM}
  1007.     INLINE $704B, $AAAA;
  1008.     {$ENDC}
  1009. FUNCTION GetTrackOffset(theTrack: Track): TimeValue;
  1010.     {$IFC NOT GENERATINGCFM}
  1011.     INLINE $704C, $AAAA;
  1012.     {$ENDC}
  1013. PROCEDURE SetTrackOffset(theTrack: Track; movieOffsetTime: TimeValue);
  1014.     {$IFC NOT GENERATINGCFM}
  1015.     INLINE $704D, $AAAA;
  1016.     {$ENDC}
  1017. FUNCTION GetTrackLayer(theTrack: Track): INTEGER;
  1018.     {$IFC NOT GENERATINGCFM}
  1019.     INLINE $7050, $AAAA;
  1020.     {$ENDC}
  1021. PROCEDURE SetTrackLayer(theTrack: Track; layer: INTEGER);
  1022.     {$IFC NOT GENERATINGCFM}
  1023.     INLINE $7051, $AAAA;
  1024.     {$ENDC}
  1025. FUNCTION GetTrackAlternate(theTrack: Track): Track;
  1026.     {$IFC NOT GENERATINGCFM}
  1027.     INLINE $7052, $AAAA;
  1028.     {$ENDC}
  1029. PROCEDURE SetTrackAlternate(theTrack: Track; alternateT: Track);
  1030.     {$IFC NOT GENERATINGCFM}
  1031.     INLINE $7053, $AAAA;
  1032.     {$ENDC}
  1033. PROCEDURE SetAutoTrackAlternatesEnabled(theMovie: Movie; enable: BOOLEAN);
  1034.     {$IFC NOT GENERATINGCFM}
  1035.     INLINE $303C, $015E, $AAAA;
  1036.     {$ENDC}
  1037. PROCEDURE SelectMovieAlternates(theMovie: Movie);
  1038.     {$IFC NOT GENERATINGCFM}
  1039.     INLINE $303C, $015F, $AAAA;
  1040.     {$ENDC}
  1041. FUNCTION GetTrackVolume(theTrack: Track): INTEGER;
  1042.     {$IFC NOT GENERATINGCFM}
  1043.     INLINE $7054, $AAAA;
  1044.     {$ENDC}
  1045. PROCEDURE SetTrackVolume(theTrack: Track; volume: INTEGER);
  1046.     {$IFC NOT GENERATINGCFM}
  1047.     INLINE $7055, $AAAA;
  1048.     {$ENDC}
  1049. PROCEDURE GetTrackMatrix(theTrack: Track; VAR matrix: MatrixRecord);
  1050.     {$IFC NOT GENERATINGCFM}
  1051.     INLINE $7056, $AAAA;
  1052.     {$ENDC}
  1053. PROCEDURE SetTrackMatrix(theTrack: Track; {CONST}VAR matrix: MatrixRecord);
  1054.     {$IFC NOT GENERATINGCFM}
  1055.     INLINE $7057, $AAAA;
  1056.     {$ENDC}
  1057. PROCEDURE GetTrackDimensions(theTrack: Track; VAR width: Fixed; VAR height: Fixed);
  1058.     {$IFC NOT GENERATINGCFM}
  1059.     INLINE $705D, $AAAA;
  1060.     {$ENDC}
  1061. PROCEDURE SetTrackDimensions(theTrack: Track; width: Fixed; height: Fixed);
  1062.     {$IFC NOT GENERATINGCFM}
  1063.     INLINE $705E, $AAAA;
  1064.     {$ENDC}
  1065. FUNCTION GetTrackUserData(theTrack: Track): UserData;
  1066.     {$IFC NOT GENERATINGCFM}
  1067.     INLINE $705F, $AAAA;
  1068.     {$ENDC}
  1069. FUNCTION GetTrackDisplayMatrix(theTrack: Track; VAR matrix: MatrixRecord): OSErr;
  1070.     {$IFC NOT GENERATINGCFM}
  1071.     INLINE $303C, $0263, $AAAA;
  1072.     {$ENDC}
  1073. FUNCTION GetTrackSoundLocalizationSettings(theTrack: Track; VAR settings: Handle): OSErr;
  1074.     {$IFC NOT GENERATINGCFM}
  1075.     INLINE $303C, $0282, $AAAA;
  1076.     {$ENDC}
  1077. FUNCTION SetTrackSoundLocalizationSettings(theTrack: Track; settings: Handle): OSErr;
  1078.     {$IFC NOT GENERATINGCFM}
  1079.     INLINE $303C, $0283, $AAAA;
  1080.     {$ENDC}
  1081. {
  1082. ************************
  1083. * get Media routines
  1084. *************************
  1085. }
  1086. FUNCTION NewTrackMedia(theTrack: Track; mediaType: OSType; timeScale: TimeScale; dataRef: Handle; dataRefType: OSType): Media;
  1087.     {$IFC NOT GENERATINGCFM}
  1088.     INLINE $303C, $018E, $AAAA;
  1089.     {$ENDC}
  1090. PROCEDURE DisposeTrackMedia(theMedia: Media);
  1091.     {$IFC NOT GENERATINGCFM}
  1092.     INLINE $7061, $AAAA;
  1093.     {$ENDC}
  1094. FUNCTION GetTrackMedia(theTrack: Track): Media;
  1095.     {$IFC NOT GENERATINGCFM}
  1096.     INLINE $7062, $AAAA;
  1097.     {$ENDC}
  1098. FUNCTION GetMediaTrack(theMedia: Media): Track;
  1099.     {$IFC NOT GENERATINGCFM}
  1100.     INLINE $303C, $00C5, $AAAA;
  1101.     {$ENDC}
  1102. {
  1103. ************************
  1104. * Media State routines
  1105. *************************
  1106. }
  1107. FUNCTION GetMediaCreationTime(theMedia: Media): LONGINT;
  1108.     {$IFC NOT GENERATINGCFM}
  1109.     INLINE $7066, $AAAA;
  1110.     {$ENDC}
  1111. FUNCTION GetMediaModificationTime(theMedia: Media): LONGINT;
  1112.     {$IFC NOT GENERATINGCFM}
  1113.     INLINE $7067, $AAAA;
  1114.     {$ENDC}
  1115. FUNCTION GetMediaTimeScale(theMedia: Media): TimeScale;
  1116.     {$IFC NOT GENERATINGCFM}
  1117.     INLINE $7068, $AAAA;
  1118.     {$ENDC}
  1119. PROCEDURE SetMediaTimeScale(theMedia: Media; timeScale: TimeScale);
  1120.     {$IFC NOT GENERATINGCFM}
  1121.     INLINE $7069, $AAAA;
  1122.     {$ENDC}
  1123. FUNCTION GetMediaDuration(theMedia: Media): TimeValue;
  1124.     {$IFC NOT GENERATINGCFM}
  1125.     INLINE $706A, $AAAA;
  1126.     {$ENDC}
  1127. FUNCTION GetMediaLanguage(theMedia: Media): INTEGER;
  1128.     {$IFC NOT GENERATINGCFM}
  1129.     INLINE $706B, $AAAA;
  1130.     {$ENDC}
  1131. PROCEDURE SetMediaLanguage(theMedia: Media; language: INTEGER);
  1132.     {$IFC NOT GENERATINGCFM}
  1133.     INLINE $706C, $AAAA;
  1134.     {$ENDC}
  1135. FUNCTION GetMediaQuality(theMedia: Media): INTEGER;
  1136.     {$IFC NOT GENERATINGCFM}
  1137.     INLINE $706D, $AAAA;
  1138.     {$ENDC}
  1139. PROCEDURE SetMediaQuality(theMedia: Media; quality: INTEGER);
  1140.     {$IFC NOT GENERATINGCFM}
  1141.     INLINE $706E, $AAAA;
  1142.     {$ENDC}
  1143. PROCEDURE GetMediaHandlerDescription(theMedia: Media; VAR mediaType: OSType; VAR creatorName: Str255; VAR creatorManufacturer: OSType);
  1144.     {$IFC NOT GENERATINGCFM}
  1145.     INLINE $706F, $AAAA;
  1146.     {$ENDC}
  1147. FUNCTION GetMediaUserData(theMedia: Media): UserData;
  1148.     {$IFC NOT GENERATINGCFM}
  1149.     INLINE $7070, $AAAA;
  1150.     {$ENDC}
  1151. FUNCTION GetMediaInputMap(theMedia: Media; VAR inputMap: QTAtomContainer): OSErr;
  1152.     {$IFC NOT GENERATINGCFM}
  1153.     INLINE $303C, $0249, $AAAA;
  1154.     {$ENDC}
  1155. FUNCTION SetMediaInputMap(theMedia: Media; inputMap: QTAtomContainer): OSErr;
  1156.     {$IFC NOT GENERATINGCFM}
  1157.     INLINE $303C, $024A, $AAAA;
  1158.     {$ENDC}
  1159. {
  1160. ************************
  1161. * Media Handler routines
  1162. *************************
  1163. }
  1164. FUNCTION GetMediaHandler(theMedia: Media): MediaHandler;
  1165.     {$IFC NOT GENERATINGCFM}
  1166.     INLINE $7071, $AAAA;
  1167.     {$ENDC}
  1168. FUNCTION SetMediaHandler(theMedia: Media; mH: MediaHandlerComponent): OSErr;
  1169.     {$IFC NOT GENERATINGCFM}
  1170.     INLINE $303C, $0190, $AAAA;
  1171.     {$ENDC}
  1172. {
  1173. ************************
  1174. * Media's Data routines
  1175. *************************
  1176. }
  1177. FUNCTION BeginMediaEdits(theMedia: Media): OSErr;
  1178.     {$IFC NOT GENERATINGCFM}
  1179.     INLINE $7072, $AAAA;
  1180.     {$ENDC}
  1181. FUNCTION EndMediaEdits(theMedia: Media): OSErr;
  1182.     {$IFC NOT GENERATINGCFM}
  1183.     INLINE $7073, $AAAA;
  1184.     {$ENDC}
  1185. FUNCTION SetMediaDefaultDataRefIndex(theMedia: Media; index: INTEGER): OSErr;
  1186.     {$IFC NOT GENERATINGCFM}
  1187.     INLINE $303C, $01E0, $AAAA;
  1188.     {$ENDC}
  1189. PROCEDURE GetMediaDataHandlerDescription(theMedia: Media; index: INTEGER; VAR dhType: OSType; VAR creatorName: Str255; VAR creatorManufacturer: OSType);
  1190.     {$IFC NOT GENERATINGCFM}
  1191.     INLINE $303C, $019E, $AAAA;
  1192.     {$ENDC}
  1193. FUNCTION GetMediaDataHandler(theMedia: Media; index: INTEGER): DataHandler;
  1194.     {$IFC NOT GENERATINGCFM}
  1195.     INLINE $303C, $019F, $AAAA;
  1196.     {$ENDC}
  1197. FUNCTION SetMediaDataHandler(theMedia: Media; index: INTEGER; dataHandler: DataHandlerComponent): OSErr;
  1198.     {$IFC NOT GENERATINGCFM}
  1199.     INLINE $303C, $01A0, $AAAA;
  1200.     {$ENDC}
  1201. FUNCTION GetDataHandler(dataRef: Handle; dataHandlerSubType: OSType; flags: LONGINT): Component;
  1202.     {$IFC NOT GENERATINGCFM}
  1203.     INLINE $303C, $01ED, $AAAA;
  1204.     {$ENDC}
  1205. {
  1206. ************************
  1207. * Media Sample Table Routines
  1208. *************************
  1209. }
  1210. FUNCTION GetMediaSampleDescriptionCount(theMedia: Media): LONGINT;
  1211.     {$IFC NOT GENERATINGCFM}
  1212.     INLINE $7077, $AAAA;
  1213.     {$ENDC}
  1214. PROCEDURE GetMediaSampleDescription(theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle);
  1215.     {$IFC NOT GENERATINGCFM}
  1216.     INLINE $7078, $AAAA;
  1217.     {$ENDC}
  1218. FUNCTION SetMediaSampleDescription(theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle): OSErr;
  1219.     {$IFC NOT GENERATINGCFM}
  1220.     INLINE $303C, $01D0, $AAAA;
  1221.     {$ENDC}
  1222. FUNCTION GetMediaSampleCount(theMedia: Media): LONGINT;
  1223.     {$IFC NOT GENERATINGCFM}
  1224.     INLINE $7079, $AAAA;
  1225.     {$ENDC}
  1226. PROCEDURE SampleNumToMediaTime(theMedia: Media; logicalSampleNum: LONGINT; VAR sampleTime: TimeValue; VAR sampleDuration: TimeValue);
  1227.     {$IFC NOT GENERATINGCFM}
  1228.     INLINE $707A, $AAAA;
  1229.     {$ENDC}
  1230. PROCEDURE MediaTimeToSampleNum(theMedia: Media; time: TimeValue; VAR sampleNum: LONGINT; VAR sampleTime: TimeValue; VAR sampleDuration: TimeValue);
  1231.     {$IFC NOT GENERATINGCFM}
  1232.     INLINE $707B, $AAAA;
  1233.     {$ENDC}
  1234. FUNCTION AddMediaSample(theMedia: Media; dataIn: Handle; inOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; VAR sampleTime: TimeValue): OSErr;
  1235.     {$IFC NOT GENERATINGCFM}
  1236.     INLINE $707C, $AAAA;
  1237.     {$ENDC}
  1238. FUNCTION AddMediaSampleReference(theMedia: Media; dataOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; VAR sampleTime: TimeValue): OSErr;
  1239.     {$IFC NOT GENERATINGCFM}
  1240.     INLINE $707D, $AAAA;
  1241.     {$ENDC}
  1242. FUNCTION AddMediaSampleReferences(theMedia: Media; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleRefs: SampleReferencePtr; VAR sampleTime: TimeValue): OSErr;
  1243.     {$IFC NOT GENERATINGCFM}
  1244.     INLINE $303C, $01F7, $AAAA;
  1245.     {$ENDC}
  1246. FUNCTION GetMediaSample(theMedia: Media; dataOut: Handle; maxSizeToGrow: LONGINT; VAR size: LONGINT; time: TimeValue; VAR sampleTime: TimeValue; VAR durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; VAR numberOfSamples: LONGINT; VAR sampleFlags: INTEGER): OSErr;
  1247.     {$IFC NOT GENERATINGCFM}
  1248.     INLINE $707E, $AAAA;
  1249.     {$ENDC}
  1250. FUNCTION GetMediaSampleReference(theMedia: Media; VAR dataOffset: LONGINT; VAR size: LONGINT; time: TimeValue; VAR sampleTime: TimeValue; VAR durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; VAR numberOfSamples: LONGINT; VAR sampleFlags: INTEGER): OSErr;
  1251.     {$IFC NOT GENERATINGCFM}
  1252.     INLINE $707F, $AAAA;
  1253.     {$ENDC}
  1254. FUNCTION GetMediaSampleReferences(theMedia: Media; time: TimeValue; VAR sampleTime: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfEntries: LONGINT; VAR actualNumberofEntries: LONGINT; sampleRefs: SampleReferencePtr): OSErr;
  1255.     {$IFC NOT GENERATINGCFM}
  1256.     INLINE $303C, $0235, $AAAA;
  1257.     {$ENDC}
  1258. FUNCTION SetMediaPreferredChunkSize(theMedia: Media; maxChunkSize: LONGINT): OSErr;
  1259.     {$IFC NOT GENERATINGCFM}
  1260.     INLINE $303C, $01F8, $AAAA;
  1261.     {$ENDC}
  1262. FUNCTION GetMediaPreferredChunkSize(theMedia: Media; VAR maxChunkSize: LONGINT): OSErr;
  1263.     {$IFC NOT GENERATINGCFM}
  1264.     INLINE $303C, $01F9, $AAAA;
  1265.     {$ENDC}
  1266. FUNCTION SetMediaShadowSync(theMedia: Media; frameDiffSampleNum: LONGINT; syncSampleNum: LONGINT): OSErr;
  1267.     {$IFC NOT GENERATINGCFM}
  1268.     INLINE $303C, $0121, $AAAA;
  1269.     {$ENDC}
  1270. FUNCTION GetMediaShadowSync(theMedia: Media; frameDiffSampleNum: LONGINT; VAR syncSampleNum: LONGINT): OSErr;
  1271.     {$IFC NOT GENERATINGCFM}
  1272.     INLINE $303C, $0122, $AAAA;
  1273.     {$ENDC}
  1274. {
  1275. ************************
  1276. * Editing Routines
  1277. *************************
  1278. }
  1279. FUNCTION InsertMediaIntoTrack(theTrack: Track; trackStart: TimeValue; mediaTime: TimeValue; mediaDuration: TimeValue; mediaRate: Fixed): OSErr;
  1280.     {$IFC NOT GENERATINGCFM}
  1281.     INLINE $303C, $0183, $AAAA;
  1282.     {$ENDC}
  1283. FUNCTION InsertTrackSegment(srcTrack: Track; dstTrack: Track; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1284.     {$IFC NOT GENERATINGCFM}
  1285.     INLINE $303C, $0085, $AAAA;
  1286.     {$ENDC}
  1287. FUNCTION InsertMovieSegment(srcMovie: Movie; dstMovie: Movie; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1288.     {$IFC NOT GENERATINGCFM}
  1289.     INLINE $303C, $0086, $AAAA;
  1290.     {$ENDC}
  1291. FUNCTION InsertEmptyTrackSegment(dstTrack: Track; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1292.     {$IFC NOT GENERATINGCFM}
  1293.     INLINE $303C, $0087, $AAAA;
  1294.     {$ENDC}
  1295. FUNCTION InsertEmptyMovieSegment(dstMovie: Movie; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1296.     {$IFC NOT GENERATINGCFM}
  1297.     INLINE $303C, $0088, $AAAA;
  1298.     {$ENDC}
  1299. FUNCTION DeleteTrackSegment(theTrack: Track; startTime: TimeValue; duration: TimeValue): OSErr;
  1300.     {$IFC NOT GENERATINGCFM}
  1301.     INLINE $303C, $0089, $AAAA;
  1302.     {$ENDC}
  1303. FUNCTION DeleteMovieSegment(theMovie: Movie; startTime: TimeValue; duration: TimeValue): OSErr;
  1304.     {$IFC NOT GENERATINGCFM}
  1305.     INLINE $303C, $008A, $AAAA;
  1306.     {$ENDC}
  1307. FUNCTION ScaleTrackSegment(theTrack: Track; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1308.     {$IFC NOT GENERATINGCFM}
  1309.     INLINE $303C, $008B, $AAAA;
  1310.     {$ENDC}
  1311. FUNCTION ScaleMovieSegment(theMovie: Movie; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1312.     {$IFC NOT GENERATINGCFM}
  1313.     INLINE $303C, $008C, $AAAA;
  1314.     {$ENDC}
  1315. {
  1316. ************************
  1317. * Hi-level Editing Routines
  1318. *************************
  1319. }
  1320. FUNCTION CutMovieSelection(theMovie: Movie): Movie;
  1321.     {$IFC NOT GENERATINGCFM}
  1322.     INLINE $303C, $008D, $AAAA;
  1323.     {$ENDC}
  1324. FUNCTION CopyMovieSelection(theMovie: Movie): Movie;
  1325.     {$IFC NOT GENERATINGCFM}
  1326.     INLINE $303C, $008E, $AAAA;
  1327.     {$ENDC}
  1328. PROCEDURE PasteMovieSelection(theMovie: Movie; src: Movie);
  1329.     {$IFC NOT GENERATINGCFM}
  1330.     INLINE $303C, $008F, $AAAA;
  1331.     {$ENDC}
  1332. PROCEDURE AddMovieSelection(theMovie: Movie; src: Movie);
  1333.     {$IFC NOT GENERATINGCFM}
  1334.     INLINE $303C, $0152, $AAAA;
  1335.     {$ENDC}
  1336. PROCEDURE ClearMovieSelection(theMovie: Movie);
  1337.     {$IFC NOT GENERATINGCFM}
  1338.     INLINE $303C, $00E1, $AAAA;
  1339.     {$ENDC}
  1340. FUNCTION PasteHandleIntoMovie(h: Handle; handleType: OSType; theMovie: Movie; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1341.     {$IFC NOT GENERATINGCFM}
  1342.     INLINE $303C, $00CB, $AAAA;
  1343.     {$ENDC}
  1344. FUNCTION PutMovieIntoTypedHandle(theMovie: Movie; targetTrack: Track; handleType: OSType; publicMovie: Handle; start: TimeValue; dur: TimeValue; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1345.     {$IFC NOT GENERATINGCFM}
  1346.     INLINE $303C, $01CD, $AAAA;
  1347.     {$ENDC}
  1348. FUNCTION IsScrapMovie(targetTrack: Track): Component;
  1349.     {$IFC NOT GENERATINGCFM}
  1350.     INLINE $303C, $00CC, $AAAA;
  1351.     {$ENDC}
  1352. {
  1353. ************************
  1354. * Middle-level Editing Routines
  1355. *************************
  1356. }
  1357. FUNCTION CopyTrackSettings(srcTrack: Track; dstTrack: Track): OSErr;
  1358.     {$IFC NOT GENERATINGCFM}
  1359.     INLINE $303C, $0153, $AAAA;
  1360.     {$ENDC}
  1361. FUNCTION CopyMovieSettings(srcMovie: Movie; dstMovie: Movie): OSErr;
  1362.     {$IFC NOT GENERATINGCFM}
  1363.     INLINE $303C, $0154, $AAAA;
  1364.     {$ENDC}
  1365. FUNCTION AddEmptyTrackToMovie(srcTrack: Track; dstMovie: Movie; dataRef: Handle; dataRefType: OSType; VAR dstTrack: Track): OSErr;
  1366.     {$IFC NOT GENERATINGCFM}
  1367.     INLINE $7074, $AAAA;
  1368.     {$ENDC}
  1369. {
  1370. ************************
  1371. * movie & track edit state routines
  1372. *************************
  1373. }
  1374. FUNCTION NewMovieEditState(theMovie: Movie): MovieEditState;
  1375.     {$IFC NOT GENERATINGCFM}
  1376.     INLINE $303C, $0104, $AAAA;
  1377.     {$ENDC}
  1378. FUNCTION UseMovieEditState(theMovie: Movie; toState: MovieEditState): OSErr;
  1379.     {$IFC NOT GENERATINGCFM}
  1380.     INLINE $303C, $0105, $AAAA;
  1381.     {$ENDC}
  1382. FUNCTION DisposeMovieEditState(state: MovieEditState): OSErr;
  1383.     {$IFC NOT GENERATINGCFM}
  1384.     INLINE $303C, $0106, $AAAA;
  1385.     {$ENDC}
  1386. FUNCTION NewTrackEditState(theTrack: Track): TrackEditState;
  1387.     {$IFC NOT GENERATINGCFM}
  1388.     INLINE $303C, $0107, $AAAA;
  1389.     {$ENDC}
  1390. FUNCTION UseTrackEditState(theTrack: Track; state: TrackEditState): OSErr;
  1391.     {$IFC NOT GENERATINGCFM}
  1392.     INLINE $303C, $0108, $AAAA;
  1393.     {$ENDC}
  1394. FUNCTION DisposeTrackEditState(state: TrackEditState): OSErr;
  1395.     {$IFC NOT GENERATINGCFM}
  1396.     INLINE $303C, $0109, $AAAA;
  1397.     {$ENDC}
  1398. {
  1399. ************************
  1400. * track reference routines
  1401. *************************
  1402. }
  1403. FUNCTION AddTrackReference(theTrack: Track; refTrack: Track; refType: OSType; VAR addedIndex: LONGINT): OSErr;
  1404.     {$IFC NOT GENERATINGCFM}
  1405.     INLINE $303C, $01F0, $AAAA;
  1406.     {$ENDC}
  1407. FUNCTION DeleteTrackReference(theTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1408.     {$IFC NOT GENERATINGCFM}
  1409.     INLINE $303C, $01F1, $AAAA;
  1410.     {$ENDC}
  1411. FUNCTION SetTrackReference(theTrack: Track; refTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1412.     {$IFC NOT GENERATINGCFM}
  1413.     INLINE $303C, $01F2, $AAAA;
  1414.     {$ENDC}
  1415. FUNCTION GetTrackReference(theTrack: Track; refType: OSType; index: LONGINT): Track;
  1416.     {$IFC NOT GENERATINGCFM}
  1417.     INLINE $303C, $01F3, $AAAA;
  1418.     {$ENDC}
  1419. FUNCTION GetNextTrackReferenceType(theTrack: Track; refType: OSType): LONGINT;
  1420.     {$IFC NOT GENERATINGCFM}
  1421.     INLINE $303C, $01F4, $AAAA;
  1422.     {$ENDC}
  1423. FUNCTION GetTrackReferenceCount(theTrack: Track; refType: OSType): LONGINT;
  1424.     {$IFC NOT GENERATINGCFM}
  1425.     INLINE $303C, $01F5, $AAAA;
  1426.     {$ENDC}
  1427. {
  1428. ************************
  1429. * high level file conversion routines
  1430. *************************
  1431. }
  1432. FUNCTION ConvertFileToMovieFile({CONST}VAR inputFile: FSSpec; {CONST}VAR outputFile: FSSpec; creator: OSType; scriptTag: ScriptCode; VAR resID: INTEGER; flags: LONGINT; userComp: ComponentInstance; proc: MovieProgressUPP; refCon: LONGINT): OSErr;
  1433.     {$IFC NOT GENERATINGCFM}
  1434.     INLINE $303C, $01CB, $AAAA;
  1435.     {$ENDC}
  1436. FUNCTION ConvertMovieToFile(theMovie: Movie; onlyTrack: Track; VAR outputFile: FSSpec; fileType: OSType; creator: OSType; scriptTag: ScriptCode; VAR resID: INTEGER; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1437.     {$IFC NOT GENERATINGCFM}
  1438.     INLINE $303C, $01CC, $AAAA;
  1439.     {$ENDC}
  1440. {
  1441. ************************
  1442. * Movie Timebase Conversion Routines
  1443. *************************
  1444. }
  1445. FUNCTION TrackTimeToMediaTime(value: TimeValue; theTrack: Track): TimeValue;
  1446.     {$IFC NOT GENERATINGCFM}
  1447.     INLINE $303C, $0096, $AAAA;
  1448.     {$ENDC}
  1449. FUNCTION GetTrackEditRate(theTrack: Track; atTime: TimeValue): Fixed;
  1450.     {$IFC NOT GENERATINGCFM}
  1451.     INLINE $303C, $0123, $AAAA;
  1452.     {$ENDC}
  1453. {
  1454. ************************
  1455. * Miscellaneous Routines
  1456. *************************
  1457. }
  1458. FUNCTION GetMovieDataSize(theMovie: Movie; startTime: TimeValue; duration: TimeValue): LONGINT;
  1459.     {$IFC NOT GENERATINGCFM}
  1460.     INLINE $303C, $0098, $AAAA;
  1461.     {$ENDC}
  1462. FUNCTION GetTrackDataSize(theTrack: Track; startTime: TimeValue; duration: TimeValue): LONGINT;
  1463.     {$IFC NOT GENERATINGCFM}
  1464.     INLINE $303C, $0149, $AAAA;
  1465.     {$ENDC}
  1466. FUNCTION GetMediaDataSize(theMedia: Media; startTime: TimeValue; duration: TimeValue): LONGINT;
  1467.     {$IFC NOT GENERATINGCFM}
  1468.     INLINE $303C, $0099, $AAAA;
  1469.     {$ENDC}
  1470. FUNCTION PtInMovie(theMovie: Movie; pt: Point): BOOLEAN;
  1471.     {$IFC NOT GENERATINGCFM}
  1472.     INLINE $303C, $009A, $AAAA;
  1473.     {$ENDC}
  1474. FUNCTION PtInTrack(theTrack: Track; pt: Point): BOOLEAN;
  1475.     {$IFC NOT GENERATINGCFM}
  1476.     INLINE $303C, $009B, $AAAA;
  1477.     {$ENDC}
  1478. {
  1479. ************************
  1480. * Group Selection Routines
  1481. *************************
  1482. }
  1483. PROCEDURE SetMovieLanguage(theMovie: Movie; language: LONGINT);
  1484.     {$IFC NOT GENERATINGCFM}
  1485.     INLINE $303C, $009C, $AAAA;
  1486.     {$ENDC}
  1487. {
  1488. ************************
  1489. * User Data
  1490. *************************
  1491. }
  1492. FUNCTION GetUserData(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT): OSErr;
  1493.     {$IFC NOT GENERATINGCFM}
  1494.     INLINE $303C, $009E, $AAAA;
  1495.     {$ENDC}
  1496. FUNCTION AddUserData(theUserData: UserData; data: Handle; udType: OSType): OSErr;
  1497.     {$IFC NOT GENERATINGCFM}
  1498.     INLINE $303C, $009F, $AAAA;
  1499.     {$ENDC}
  1500. FUNCTION RemoveUserData(theUserData: UserData; udType: OSType; index: LONGINT): OSErr;
  1501.     {$IFC NOT GENERATINGCFM}
  1502.     INLINE $303C, $00A0, $AAAA;
  1503.     {$ENDC}
  1504. FUNCTION CountUserDataType(theUserData: UserData; udType: OSType): INTEGER;
  1505.     {$IFC NOT GENERATINGCFM}
  1506.     INLINE $303C, $014B, $AAAA;
  1507.     {$ENDC}
  1508. FUNCTION GetNextUserDataType(theUserData: UserData; udType: OSType): LONGINT;
  1509.     {$IFC NOT GENERATINGCFM}
  1510.     INLINE $303C, $01A5, $AAAA;
  1511.     {$ENDC}
  1512. FUNCTION GetUserDataItem(theUserData: UserData; data: UNIV Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1513.     {$IFC NOT GENERATINGCFM}
  1514.     INLINE $303C, $0126, $AAAA;
  1515.     {$ENDC}
  1516. FUNCTION SetUserDataItem(theUserData: UserData; data: UNIV Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1517.     {$IFC NOT GENERATINGCFM}
  1518.     INLINE $303C, $012E, $AAAA;
  1519.     {$ENDC}
  1520. FUNCTION AddUserDataText(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1521.     {$IFC NOT GENERATINGCFM}
  1522.     INLINE $303C, $014C, $AAAA;
  1523.     {$ENDC}
  1524. FUNCTION GetUserDataText(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1525.     {$IFC NOT GENERATINGCFM}
  1526.     INLINE $303C, $014D, $AAAA;
  1527.     {$ENDC}
  1528. FUNCTION RemoveUserDataText(theUserData: UserData; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1529.     {$IFC NOT GENERATINGCFM}
  1530.     INLINE $303C, $014E, $AAAA;
  1531.     {$ENDC}
  1532. FUNCTION NewUserData(VAR theUserData: UserData): OSErr;
  1533.     {$IFC NOT GENERATINGCFM}
  1534.     INLINE $303C, $012F, $AAAA;
  1535.     {$ENDC}
  1536. FUNCTION DisposeUserData(theUserData: UserData): OSErr;
  1537.     {$IFC NOT GENERATINGCFM}
  1538.     INLINE $303C, $0130, $AAAA;
  1539.     {$ENDC}
  1540. FUNCTION NewUserDataFromHandle(h: Handle; VAR theUserData: UserData): OSErr;
  1541.     {$IFC NOT GENERATINGCFM}
  1542.     INLINE $303C, $0131, $AAAA;
  1543.     {$ENDC}
  1544. FUNCTION PutUserDataIntoHandle(theUserData: UserData; h: Handle): OSErr;
  1545.     {$IFC NOT GENERATINGCFM}
  1546.     INLINE $303C, $0132, $AAAA;
  1547.     {$ENDC}
  1548. PROCEDURE GetMediaNextInterestingTime(theMedia: Media; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1549.     {$IFC NOT GENERATINGCFM}
  1550.     INLINE $303C, $016D, $AAAA;
  1551.     {$ENDC}
  1552. PROCEDURE GetTrackNextInterestingTime(theTrack: Track; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1553.     {$IFC NOT GENERATINGCFM}
  1554.     INLINE $303C, $00E2, $AAAA;
  1555.     {$ENDC}
  1556. PROCEDURE GetMovieNextInterestingTime(theMovie: Movie; interestingTimeFlags: INTEGER; numMediaTypes: INTEGER; {CONST}VAR whichMediaTypes: OSType; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1557.     {$IFC NOT GENERATINGCFM}
  1558.     INLINE $303C, $010E, $AAAA;
  1559.     {$ENDC}
  1560. FUNCTION CreateMovieFile({CONST}VAR fileSpec: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; VAR resRefNum: INTEGER; VAR newmovie: Movie): OSErr;
  1561.     {$IFC NOT GENERATINGCFM}
  1562.     INLINE $303C, $0191, $AAAA;
  1563.     {$ENDC}
  1564. FUNCTION OpenMovieFile({CONST}VAR fileSpec: FSSpec; VAR resRefNum: INTEGER; permission: SInt8): OSErr;
  1565.     {$IFC NOT GENERATINGCFM}
  1566.     INLINE $303C, $0192, $AAAA;
  1567.     {$ENDC}
  1568. FUNCTION CloseMovieFile(resRefNum: INTEGER): OSErr;
  1569.     {$IFC NOT GENERATINGCFM}
  1570.     INLINE $303C, $00D5, $AAAA;
  1571.     {$ENDC}
  1572. FUNCTION DeleteMovieFile({CONST}VAR fileSpec: FSSpec): OSErr;
  1573.     {$IFC NOT GENERATINGCFM}
  1574.     INLINE $303C, $0175, $AAAA;
  1575.     {$ENDC}
  1576. FUNCTION NewMovieFromFile(VAR theMovie: Movie; resRefNum: INTEGER; VAR resId: INTEGER; resName: StringPtr; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1577.     {$IFC NOT GENERATINGCFM}
  1578.     INLINE $303C, $00F0, $AAAA;
  1579.     {$ENDC}
  1580. FUNCTION NewMovieFromHandle(VAR theMovie: Movie; h: Handle; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1581.     {$IFC NOT GENERATINGCFM}
  1582.     INLINE $303C, $00F1, $AAAA;
  1583.     {$ENDC}
  1584. FUNCTION NewMovieFromDataFork(VAR theMovie: Movie; fRefNum: INTEGER; fileOffset: LONGINT; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1585.     {$IFC NOT GENERATINGCFM}
  1586.     INLINE $303C, $01B3, $AAAA;
  1587.     {$ENDC}
  1588. FUNCTION NewMovieFromUserProc(VAR m: Movie; flags: INTEGER; VAR dataRefWasChanged: BOOLEAN; getProc: GetMovieUPP; refCon: UNIV Ptr; defaultDataRef: Handle; dataRefType: OSType): OSErr;
  1589.     {$IFC NOT GENERATINGCFM}
  1590.     INLINE $303C, $01EC, $AAAA;
  1591.     {$ENDC}
  1592. FUNCTION NewMovieFromDataRef(VAR m: Movie; flags: INTEGER; VAR id: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1593.     {$IFC NOT GENERATINGCFM}
  1594.     INLINE $303C, $0220, $AAAA;
  1595.     {$ENDC}
  1596. FUNCTION AddMovieResource(theMovie: Movie; resRefNum: INTEGER; VAR resId: INTEGER; resName: Str255): OSErr;
  1597.     {$IFC NOT GENERATINGCFM}
  1598.     INLINE $303C, $00D7, $AAAA;
  1599.     {$ENDC}
  1600. FUNCTION UpdateMovieResource(theMovie: Movie; resRefNum: INTEGER; resId: INTEGER; resName: Str255): OSErr;
  1601.     {$IFC NOT GENERATINGCFM}
  1602.     INLINE $303C, $00D8, $AAAA;
  1603.     {$ENDC}
  1604. FUNCTION RemoveMovieResource(resRefNum: INTEGER; resId: INTEGER): OSErr;
  1605.     {$IFC NOT GENERATINGCFM}
  1606.     INLINE $303C, $0176, $AAAA;
  1607.     {$ENDC}
  1608. FUNCTION HasMovieChanged(theMovie: Movie): BOOLEAN;
  1609.     {$IFC NOT GENERATINGCFM}
  1610.     INLINE $303C, $00D9, $AAAA;
  1611.     {$ENDC}
  1612. PROCEDURE ClearMovieChanged(theMovie: Movie);
  1613.     {$IFC NOT GENERATINGCFM}
  1614.     INLINE $303C, $0113, $AAAA;
  1615.     {$ENDC}
  1616. FUNCTION SetMovieDefaultDataRef(theMovie: Movie; dataRef: Handle; dataRefType: OSType): OSErr;
  1617.     {$IFC NOT GENERATINGCFM}
  1618.     INLINE $303C, $01C1, $AAAA;
  1619.     {$ENDC}
  1620. FUNCTION GetMovieDefaultDataRef(theMovie: Movie; VAR dataRef: Handle; VAR dataRefType: OSType): OSErr;
  1621.     {$IFC NOT GENERATINGCFM}
  1622.     INLINE $303C, $01D2, $AAAA;
  1623.     {$ENDC}
  1624. FUNCTION SetMovieColorTable(theMovie: Movie; ctab: CTabHandle): OSErr;
  1625.     {$IFC NOT GENERATINGCFM}
  1626.     INLINE $303C, $0205, $AAAA;
  1627.     {$ENDC}
  1628. FUNCTION GetMovieColorTable(theMovie: Movie; VAR ctab: CTabHandle): OSErr;
  1629.     {$IFC NOT GENERATINGCFM}
  1630.     INLINE $303C, $0206, $AAAA;
  1631.     {$ENDC}
  1632. PROCEDURE FlattenMovie(theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}VAR theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; VAR resId: INTEGER; resName: Str255);
  1633.     {$IFC NOT GENERATINGCFM}
  1634.     INLINE $303C, $019B, $AAAA;
  1635.     {$ENDC}
  1636. FUNCTION FlattenMovieData(theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}VAR theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT): Movie;
  1637.     {$IFC NOT GENERATINGCFM}
  1638.     INLINE $303C, $019C, $AAAA;
  1639.     {$ENDC}
  1640. PROCEDURE SetMovieProgressProc(theMovie: Movie; p: MovieProgressUPP; refcon: LONGINT);
  1641.     {$IFC NOT GENERATINGCFM}
  1642.     INLINE $303C, $019A, $AAAA;
  1643.     {$ENDC}
  1644. FUNCTION MovieSearchText(theMovie: Movie; text: Ptr; size: LONGINT; searchFlags: LONGINT; VAR searchTrack: Track; VAR searchTime: TimeValue; VAR searchOffset: LONGINT): OSErr;
  1645.     {$IFC NOT GENERATINGCFM}
  1646.     INLINE $303C, $0207, $AAAA;
  1647.     {$ENDC}
  1648. PROCEDURE GetPosterBox(theMovie: Movie; VAR boxRect: Rect);
  1649.     {$IFC NOT GENERATINGCFM}
  1650.     INLINE $303C, $016F, $AAAA;
  1651.     {$ENDC}
  1652. PROCEDURE SetPosterBox(theMovie: Movie; {CONST}VAR boxRect: Rect);
  1653.     {$IFC NOT GENERATINGCFM}
  1654.     INLINE $303C, $0170, $AAAA;
  1655.     {$ENDC}
  1656. FUNCTION GetMovieSegmentDisplayBoundsRgn(theMovie: Movie; time: TimeValue; duration: TimeValue): RgnHandle;
  1657.     {$IFC NOT GENERATINGCFM}
  1658.     INLINE $303C, $016C, $AAAA;
  1659.     {$ENDC}
  1660. FUNCTION GetTrackSegmentDisplayBoundsRgn(theTrack: Track; time: TimeValue; duration: TimeValue): RgnHandle;
  1661.     {$IFC NOT GENERATINGCFM}
  1662.     INLINE $303C, $016B, $AAAA;
  1663.     {$ENDC}
  1664. PROCEDURE SetMovieCoverProcs(theMovie: Movie; uncoverProc: MovieRgnCoverUPP; coverProc: MovieRgnCoverUPP; refcon: LONGINT);
  1665.     {$IFC NOT GENERATINGCFM}
  1666.     INLINE $303C, $0179, $AAAA;
  1667.     {$ENDC}
  1668. FUNCTION GetMovieCoverProcs(theMovie: Movie; VAR uncoverProc: MovieRgnCoverUPP; VAR coverProc: MovieRgnCoverUPP; VAR refcon: LONGINT): OSErr;
  1669.     {$IFC NOT GENERATINGCFM}
  1670.     INLINE $303C, $01DD, $AAAA;
  1671.     {$ENDC}
  1672. FUNCTION GetTrackStatus(theTrack: Track): ComponentResult;
  1673.     {$IFC NOT GENERATINGCFM}
  1674.     INLINE $303C, $0172, $AAAA;
  1675.     {$ENDC}
  1676. FUNCTION GetMovieStatus(theMovie: Movie; VAR firstProblemTrack: Track): ComponentResult;
  1677.     {$IFC NOT GENERATINGCFM}
  1678.     INLINE $303C, $0173, $AAAA;
  1679.     {$ENDC}
  1680. {
  1681. ***
  1682.     Movie Controller support routines
  1683. ***
  1684. }
  1685. FUNCTION NewMovieController(theMovie: Movie; {CONST}VAR movieRect: Rect; someFlags: LONGINT): ComponentInstance;
  1686.     {$IFC NOT GENERATINGCFM}
  1687.     INLINE $303C, $018A, $AAAA;
  1688.     {$ENDC}
  1689. PROCEDURE DisposeMovieController(mc: ComponentInstance);
  1690.     {$IFC NOT GENERATINGCFM}
  1691.     INLINE $303C, $018B, $AAAA;
  1692.     {$ENDC}
  1693. PROCEDURE ShowMovieInformation(theMovie: Movie; filterProc: ModalFilterUPP; refCon: LONGINT);
  1694.     {$IFC NOT GENERATINGCFM}
  1695.     INLINE $303C, $0209, $AAAA;
  1696.     {$ENDC}
  1697. {
  1698. ****
  1699.     Scrap routines
  1700. ****
  1701. }
  1702. FUNCTION PutMovieOnScrap(theMovie: Movie; movieScrapFlags: LONGINT): OSErr;
  1703.     {$IFC NOT GENERATINGCFM}
  1704.     INLINE $303C, $018C, $AAAA;
  1705.     {$ENDC}
  1706. FUNCTION NewMovieFromScrap(newMovieFlags: LONGINT): Movie;
  1707.     {$IFC NOT GENERATINGCFM}
  1708.     INLINE $303C, $018D, $AAAA;
  1709.     {$ENDC}
  1710. {
  1711. ****
  1712.     DataRef routines
  1713. ****
  1714. }
  1715. FUNCTION GetMediaDataRef(theMedia: Media; index: INTEGER; VAR dataRef: Handle; VAR dataRefType: OSType; VAR dataRefAttributes: LONGINT): OSErr;
  1716.     {$IFC NOT GENERATINGCFM}
  1717.     INLINE $303C, $0197, $AAAA;
  1718.     {$ENDC}
  1719. FUNCTION SetMediaDataRef(theMedia: Media; index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1720.     {$IFC NOT GENERATINGCFM}
  1721.     INLINE $303C, $01C9, $AAAA;
  1722.     {$ENDC}
  1723. FUNCTION SetMediaDataRefAttributes(theMedia: Media; index: INTEGER; dataRefAttributes: LONGINT): OSErr;
  1724.     {$IFC NOT GENERATINGCFM}
  1725.     INLINE $303C, $01CA, $AAAA;
  1726.     {$ENDC}
  1727. FUNCTION AddMediaDataRef(theMedia: Media; VAR index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1728.     {$IFC NOT GENERATINGCFM}
  1729.     INLINE $303C, $0198, $AAAA;
  1730.     {$ENDC}
  1731. FUNCTION GetMediaDataRefCount(theMedia: Media; VAR count: INTEGER): OSErr;
  1732.     {$IFC NOT GENERATINGCFM}
  1733.     INLINE $303C, $0199, $AAAA;
  1734.     {$ENDC}
  1735. {
  1736. ****
  1737.     Playback hint routines
  1738. ****
  1739. }
  1740. PROCEDURE SetMoviePlayHints(theMovie: Movie; flags: LONGINT; flagsMask: LONGINT);
  1741.     {$IFC NOT GENERATINGCFM}
  1742.     INLINE $303C, $01A1, $AAAA;
  1743.     {$ENDC}
  1744. PROCEDURE SetMediaPlayHints(theMedia: Media; flags: LONGINT; flagsMask: LONGINT);
  1745.     {$IFC NOT GENERATINGCFM}
  1746.     INLINE $303C, $01A2, $AAAA;
  1747.     {$ENDC}
  1748. {
  1749. ****
  1750.     Load time track hints
  1751. ****
  1752. }
  1753.  
  1754. CONST
  1755.     preloadAlways                = $00000001;
  1756.     preloadOnlyIfEnabled        = $00000002;
  1757.  
  1758. PROCEDURE SetTrackLoadSettings(theTrack: Track; preloadTime: TimeValue; preloadDuration: TimeValue; preloadFlags: LONGINT; defaultHints: LONGINT);
  1759.     {$IFC NOT GENERATINGCFM}
  1760.     INLINE $303C, $01E3, $AAAA;
  1761.     {$ENDC}
  1762. PROCEDURE GetTrackLoadSettings(theTrack: Track; VAR preloadTime: TimeValue; VAR preloadDuration: TimeValue; VAR preloadFlags: LONGINT; VAR defaultHints: LONGINT);
  1763.     {$IFC NOT GENERATINGCFM}
  1764.     INLINE $303C, $01E4, $AAAA;
  1765.     {$ENDC}
  1766. {
  1767. ****
  1768.     Big screen TV
  1769. ****
  1770. }
  1771.  
  1772. CONST
  1773.     fullScreenHideCursor        = $00000001;
  1774.     fullScreenAllowEvents        = $00000002;
  1775.     fullScreenDontChangeMenuBar    = $00000004;
  1776.     fullScreenPreflightSize        = $00000008;
  1777.  
  1778. FUNCTION BeginFullScreen(VAR restoreState: Ptr; whichGD: GDHandle; VAR desiredWidth: INTEGER; VAR desiredHeight: INTEGER; VAR newWindow: WindowPtr; VAR eraseColor: RGBColor; flags: LONGINT): OSErr;
  1779.     {$IFC NOT GENERATINGCFM}
  1780.     INLINE $303C, $0233, $AAAA;
  1781.     {$ENDC}
  1782. FUNCTION EndFullScreen(fullState: Ptr; flags: LONGINT): OSErr;
  1783.     {$IFC NOT GENERATINGCFM}
  1784.     INLINE $303C, $0234, $AAAA;
  1785.     {$ENDC}
  1786. {
  1787. ****
  1788.     Sprite Toolbox
  1789. ****
  1790. }
  1791.  
  1792. CONST
  1793.     kBackgroundSpriteLayerNum    = 32767;
  1794.  
  1795. {   Sprite Properties }
  1796.     kSpritePropertyMatrix        = 1;
  1797.     kSpritePropertyImageDescription = 2;
  1798.     kSpritePropertyImageDataPtr    = 3;
  1799.     kSpritePropertyVisible        = 4;
  1800.     kSpritePropertyLayer        = 5;
  1801.     kSpritePropertyGraphicsMode    = 6;
  1802.     kSpritePropertyImageIndex    = 100;
  1803.     kSpriteTrackPropertyBackgroundColor = 101;
  1804.     kSpriteTrackPropertyOffscreenBitDepth = 102;
  1805.     kSpriteTrackPropertySampleFormat = 103;
  1806.  
  1807. {  flagsIn for SpriteWorldIdle }
  1808.     kOnlyDrawToSpriteWorld        = $00000001;
  1809.     kSpriteWorldPreflight        = $00000002;
  1810.  
  1811. {  flagsOut for SpriteWorldIdle }
  1812.     kSpriteWorldDidDraw            = $00000001;
  1813.     kSpriteWorldNeedsToDraw        = $00000002;
  1814.  
  1815. {  flags for sprite track sample format }
  1816.     kKeyFrameAndSingleOverride    = $00000002;
  1817.     kKeyFrameAndAllOverrides    = $00000004;
  1818.  
  1819. FUNCTION NewSpriteWorld(VAR newSpriteWorld: SpriteWorld; destination: GWorldPtr; spriteLayer: GWorldPtr; VAR backgroundColor: RGBColor; background: GWorldPtr): OSErr;
  1820.     {$IFC NOT GENERATINGCFM}
  1821.     INLINE $303C, $0239, $AAAA;
  1822.     {$ENDC}
  1823. PROCEDURE DisposeSpriteWorld(theSpriteWorld: SpriteWorld);
  1824.     {$IFC NOT GENERATINGCFM}
  1825.     INLINE $303C, $023A, $AAAA;
  1826.     {$ENDC}
  1827. FUNCTION SetSpriteWorldClip(theSpriteWorld: SpriteWorld; clipRgn: RgnHandle): OSErr;
  1828.     {$IFC NOT GENERATINGCFM}
  1829.     INLINE $303C, $023B, $AAAA;
  1830.     {$ENDC}
  1831. FUNCTION SetSpriteWorldMatrix(theSpriteWorld: SpriteWorld; {CONST}VAR matrix: MatrixRecord): OSErr;
  1832.     {$IFC NOT GENERATINGCFM}
  1833.     INLINE $303C, $023C, $AAAA;
  1834.     {$ENDC}
  1835. FUNCTION SpriteWorldIdle(theSpriteWorld: SpriteWorld; flagsIn: LONGINT; VAR flagsOut: LONGINT): OSErr;
  1836.     {$IFC NOT GENERATINGCFM}
  1837.     INLINE $303C, $023D, $AAAA;
  1838.     {$ENDC}
  1839. FUNCTION InvalidateSpriteWorld(theSpriteWorld: SpriteWorld; VAR invalidArea: Rect): OSErr;
  1840.     {$IFC NOT GENERATINGCFM}
  1841.     INLINE $303C, $023E, $AAAA;
  1842.     {$ENDC}
  1843. FUNCTION SpriteWorldHitTest(theSpriteWorld: SpriteWorld; flags: LONGINT; loc: Point; VAR spriteHit: Sprite): OSErr;
  1844.     {$IFC NOT GENERATINGCFM}
  1845.     INLINE $303C, $0246, $AAAA;
  1846.     {$ENDC}
  1847. FUNCTION SpriteHitTest(theSprite: Sprite; flags: LONGINT; loc: Point; VAR wasHit: BOOLEAN): OSErr;
  1848.     {$IFC NOT GENERATINGCFM}
  1849.     INLINE $303C, $0247, $AAAA;
  1850.     {$ENDC}
  1851. PROCEDURE DisposeAllSprites(theSpriteWorld: SpriteWorld);
  1852.     {$IFC NOT GENERATINGCFM}
  1853.     INLINE $303C, $023F, $AAAA;
  1854.     {$ENDC}
  1855. FUNCTION NewSprite(VAR newSprite: Sprite; itsSpriteWorld: SpriteWorld; idh: ImageDescriptionHandle; imageDataPtr: Ptr; VAR matrix: MatrixRecord; visible: BOOLEAN; layer: INTEGER): OSErr;
  1856.     {$IFC NOT GENERATINGCFM}
  1857.     INLINE $303C, $0240, $AAAA;
  1858.     {$ENDC}
  1859. PROCEDURE DisposeSprite(theSprite: Sprite);
  1860.     {$IFC NOT GENERATINGCFM}
  1861.     INLINE $303C, $0241, $AAAA;
  1862.     {$ENDC}
  1863. PROCEDURE InvalidateSprite(theSprite: Sprite);
  1864.     {$IFC NOT GENERATINGCFM}
  1865.     INLINE $303C, $0242, $AAAA;
  1866.     {$ENDC}
  1867. FUNCTION SetSpriteProperty(theSprite: Sprite; propertyType: LONGINT; propertyValue: UNIV Ptr): OSErr;
  1868.     {$IFC NOT GENERATINGCFM}
  1869.     INLINE $303C, $0243, $AAAA;
  1870.     {$ENDC}
  1871. FUNCTION GetSpriteProperty(theSprite: Sprite; propertyType: LONGINT; propertyValue: UNIV Ptr): OSErr;
  1872.     {$IFC NOT GENERATINGCFM}
  1873.     INLINE $303C, $0244, $AAAA;
  1874.     {$ENDC}
  1875. {
  1876. ****
  1877.     QT Atom Data Support
  1878. ****
  1879. }
  1880.  
  1881. CONST
  1882.     kParentAtomIsContainer        = 0;
  1883.  
  1884. {  create and dispose QTAtomContainer objects }
  1885. FUNCTION QTNewAtomContainer(VAR atomData: QTAtomContainer): OSErr;
  1886.     {$IFC NOT GENERATINGCFM}
  1887.     INLINE $303C, $020C, $AAAA;
  1888.     {$ENDC}
  1889. FUNCTION QTDisposeAtomContainer(atomData: QTAtomContainer): OSErr;
  1890.     {$IFC NOT GENERATINGCFM}
  1891.     INLINE $303C, $020D, $AAAA;
  1892.     {$ENDC}
  1893. {  locating nested atoms within QTAtomContainer container }
  1894. FUNCTION QTGetNextChildType(container: QTAtomContainer; parentAtom: QTAtom; currentChildType: QTAtomType): QTAtomType;
  1895.     {$IFC NOT GENERATINGCFM}
  1896.     INLINE $303C, $020E, $AAAA;
  1897.     {$ENDC}
  1898. FUNCTION QTCountChildrenOfType(container: QTAtomContainer; parentAtom: QTAtom; childType: QTAtomType): INTEGER;
  1899.     {$IFC NOT GENERATINGCFM}
  1900.     INLINE $303C, $020F, $AAAA;
  1901.     {$ENDC}
  1902. FUNCTION QTFindChildByIndex(container: QTAtomContainer; parentAtom: QTAtom; atomType: QTAtomType; index: INTEGER; VAR id: QTAtomID): QTAtom;
  1903.     {$IFC NOT GENERATINGCFM}
  1904.     INLINE $303C, $0210, $AAAA;
  1905.     {$ENDC}
  1906. FUNCTION QTFindChildByID(container: QTAtomContainer; parentAtom: QTAtom; atomType: QTAtomType; id: QTAtomID; VAR index: INTEGER): QTAtom;
  1907.     {$IFC NOT GENERATINGCFM}
  1908.     INLINE $303C, $021D, $AAAA;
  1909.     {$ENDC}
  1910. FUNCTION QTNextChildAnyType(container: QTAtomContainer; parentAtom: QTAtom; currentChild: QTAtom; VAR nextChild: QTAtom): OSErr;
  1911.     {$IFC NOT GENERATINGCFM}
  1912.     INLINE $303C, $0200, $AAAA;
  1913.     {$ENDC}
  1914. {  set a leaf atom's data }
  1915. FUNCTION QTSetAtomData(container: QTAtomContainer; atom: QTAtom; dataSize: LONGINT; atomData: UNIV Ptr): OSErr;
  1916.     {$IFC NOT GENERATINGCFM}
  1917.     INLINE $303C, $0211, $AAAA;
  1918.     {$ENDC}
  1919. {  extracting data }
  1920. FUNCTION QTCopyAtomDataToHandle(container: QTAtomContainer; atom: QTAtom; targetHandle: Handle): OSErr;
  1921.     {$IFC NOT GENERATINGCFM}
  1922.     INLINE $303C, $0212, $AAAA;
  1923.     {$ENDC}
  1924. FUNCTION QTCopyAtomDataToPtr(container: QTAtomContainer; atom: QTAtom; sizeOrLessOK: BOOLEAN; size: LONGINT; targetPtr: UNIV Ptr; VAR actualSize: LONGINT): OSErr;
  1925.     {$IFC NOT GENERATINGCFM}
  1926.     INLINE $303C, $0213, $AAAA;
  1927.     {$ENDC}
  1928. FUNCTION QTGetAtomTypeAndID(container: QTAtomContainer; atom: QTAtom; VAR atomType: QTAtomType; VAR id: QTAtomID): OSErr;
  1929.     {$IFC NOT GENERATINGCFM}
  1930.     INLINE $303C, $0232, $AAAA;
  1931.     {$ENDC}
  1932. {  extract a copy of an atom and all of it's children, caller disposes }
  1933. FUNCTION QTCopyAtom(container: QTAtomContainer; atom: QTAtom; VAR targetContainer: QTAtomContainer): OSErr;
  1934.     {$IFC NOT GENERATINGCFM}
  1935.     INLINE $303C, $0214, $AAAA;
  1936.     {$ENDC}
  1937. {  obtaining direct reference to atom data }
  1938. FUNCTION QTLockContainer(container: QTAtomContainer): OSErr;
  1939.     {$IFC NOT GENERATINGCFM}
  1940.     INLINE $303C, $0215, $AAAA;
  1941.     {$ENDC}
  1942. FUNCTION QTGetAtomDataPtr(container: QTAtomContainer; atom: QTAtom; VAR dataSize: LONGINT; VAR atomData: Ptr): OSErr;
  1943.     {$IFC NOT GENERATINGCFM}
  1944.     INLINE $303C, $0216, $AAAA;
  1945.     {$ENDC}
  1946. FUNCTION QTUnlockContainer(container: QTAtomContainer): OSErr;
  1947.     {$IFC NOT GENERATINGCFM}
  1948.     INLINE $303C, $0217, $AAAA;
  1949.     {$ENDC}
  1950. {
  1951.  building QTAtomContainer trees
  1952.  creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
  1953.  used for Top-Down tree creation
  1954. }
  1955. FUNCTION QTInsertChild(container: QTAtomContainer; parentAtom: QTAtom; atomType: QTAtomType; id: QTAtomID; index: INTEGER; dataSize: LONGINT; data: UNIV Ptr; VAR newAtom: QTAtom): OSErr;
  1956.     {$IFC NOT GENERATINGCFM}
  1957.     INLINE $303C, $0218, $AAAA;
  1958.     {$ENDC}
  1959. {  inserts children from childrenContainer as children of parentAtom }
  1960. FUNCTION QTInsertChildren(container: QTAtomContainer; parentAtom: QTAtom; childrenContainer: QTAtomContainer): OSErr;
  1961.     {$IFC NOT GENERATINGCFM}
  1962.     INLINE $303C, $0219, $AAAA;
  1963.     {$ENDC}
  1964. {  destruction }
  1965. FUNCTION QTRemoveAtom(container: QTAtomContainer; atom: QTAtom): OSErr;
  1966.     {$IFC NOT GENERATINGCFM}
  1967.     INLINE $303C, $021A, $AAAA;
  1968.     {$ENDC}
  1969. FUNCTION QTRemoveChildren(container: QTAtomContainer; atom: QTAtom): OSErr;
  1970.     {$IFC NOT GENERATINGCFM}
  1971.     INLINE $303C, $021B, $AAAA;
  1972.     {$ENDC}
  1973. {  replacement must be same type as target }
  1974. FUNCTION QTReplaceAtom(targetContainer: QTAtomContainer; targetAtom: QTAtom; replacementContainer: QTAtomContainer; replacementAtom: QTAtom): OSErr;
  1975.     {$IFC NOT GENERATINGCFM}
  1976.     INLINE $303C, $021C, $AAAA;
  1977.     {$ENDC}
  1978. FUNCTION QTSwapAtoms(container: QTAtomContainer; atom1: QTAtom; atom2: QTAtom): OSErr;
  1979.     {$IFC NOT GENERATINGCFM}
  1980.     INLINE $303C, $01FF, $AAAA;
  1981.     {$ENDC}
  1982. FUNCTION QTSetAtomID(container: QTAtomContainer; atom: QTAtom; newID: QTAtomID): OSErr;
  1983.     {$IFC NOT GENERATINGCFM}
  1984.     INLINE $303C, $0231, $AAAA;
  1985.     {$ENDC}
  1986. FUNCTION SetMediaPropertyAtom(theMedia: Media; propertyAtom: QTAtomContainer): OSErr;
  1987.     {$IFC NOT GENERATINGCFM}
  1988.     INLINE $303C, $022E, $AAAA;
  1989.     {$ENDC}
  1990. FUNCTION GetMediaPropertyAtom(theMedia: Media; VAR propertyAtom: QTAtomContainer): OSErr;
  1991.     {$IFC NOT GENERATINGCFM}
  1992.     INLINE $303C, $022F, $AAAA;
  1993.     {$ENDC}
  1994. {
  1995. ****
  1996.     QT International Text Atom Support
  1997. ****
  1998. }
  1999.  
  2000. CONST
  2001.     kITextRemoveEverythingBut    = $00;
  2002.     kITextRemoveLeaveSuggestedAlternate = $02;
  2003.  
  2004.     kITextAtomType                = 'itxt';
  2005.     kITextStringAtomType        = 'text';
  2006.  
  2007. FUNCTION ITextAddString(container: QTAtomContainer; parentAtom: QTAtom; theRegionCode: INTEGER; theString: Str255): OSErr;
  2008.     {$IFC NOT GENERATINGCFM}
  2009.     INLINE $303C, $027A, $AAAA;
  2010.     {$ENDC}
  2011. FUNCTION ITextRemoveString(container: QTAtomContainer; parentAtom: QTAtom; theRegionCode: INTEGER; flags: LONGINT): OSErr;
  2012.     {$IFC NOT GENERATINGCFM}
  2013.     INLINE $303C, $027B, $AAAA;
  2014.     {$ENDC}
  2015. FUNCTION ITextGetString(container: QTAtomContainer; parentAtom: QTAtom; requestedRegion: INTEGER; VAR foundRegion: INTEGER; theString: StringPtr): OSErr;
  2016.     {$IFC NOT GENERATINGCFM}
  2017.     INLINE $303C, $027C, $AAAA;
  2018.     {$ENDC}
  2019. {
  2020. ************************
  2021. * modifier track types
  2022. *************************
  2023. }
  2024.  
  2025. CONST
  2026.     kTrackModifierInput            = $696E;                        {  is really 'in' }
  2027.     kTrackModifierType            = $7479;                        {  is really 'ty' }
  2028.     kTrackModifierReference        = 'ssrc';
  2029.     kTrackModifierObjectID        = 'obid';
  2030.     kTrackModifierInputName        = 'name';
  2031.  
  2032.     kInputMapSubInputID            = 'subi';
  2033.  
  2034.     kTrackModifierTypeMatrix    = 1;
  2035.     kTrackModifierTypeClip        = 2;
  2036.     kTrackModifierTypeGraphicsMode = 5;
  2037.     kTrackModifierTypeVolume    = 3;
  2038.     kTrackModifierTypeBalance    = 4;
  2039.     kTrackModifierTypeImage        = 'vide';                        {  was kTrackModifierTypeSpriteImage }
  2040.     kTrackModifierObjectMatrix    = 6;
  2041.     kTrackModifierObjectGraphicsMode = 7;
  2042.     kTrackModifierType3d4x4Matrix = 8;
  2043.     kTrackModifierCameraData    = 9;
  2044.     kTrackModifierSoundLocalizationData = 10;
  2045.  
  2046.  
  2047. TYPE
  2048.     ModifierTrackGraphicsModeRecordPtr = ^ModifierTrackGraphicsModeRecord;
  2049.     ModifierTrackGraphicsModeRecord = RECORD
  2050.         graphicsMode:            LONGINT;
  2051.         opColor:                RGBColor;
  2052.     END;
  2053.  
  2054. {
  2055. ************************
  2056. * tween track types
  2057. *************************
  2058. }
  2059.  
  2060. CONST
  2061.     kTweenTypeShort                = 1;
  2062.     kTweenTypeLong                = 2;
  2063.     kTweenTypeFixed                = 3;
  2064.     kTweenTypePoint                = 4;
  2065.     kTweenTypeQDRect            = 5;
  2066.     kTweenTypeQDRegion            = 6;
  2067.     kTweenTypeMatrix            = 7;
  2068.     kTweenTypeRGBColor            = 8;
  2069.     kTweenTypeGraphicsModeWithRGBColor = 9;
  2070.     kTweenType3dScale            = '3sca';
  2071.     kTweenType3dTranslate        = '3tra';
  2072.     kTweenType3dRotate            = '3rot';
  2073.     kTweenType3dRotateAboutPoint = '3rap';
  2074.     kTweenType3dRotateAboutAxis    = '3rax';
  2075.     kTweenType3dQuaternion        = '3qua';
  2076.     kTweenType3dMatrix            = '3mat';
  2077.     kTweenType3dCameraData        = '3cam';
  2078.     kTweenType3dSoundLocalizationData = '3slc';
  2079.  
  2080.     kTweenEntry                    = 'twen';
  2081.     kTweenData                    = 'data';
  2082.     kTweenType                    = 'twnt';
  2083.     kTweenStartOffset            = 'twst';
  2084.     kTweenDuration                = 'twdu';
  2085.     kTween3dInitialCondition    = 'icnd';
  2086.     kTweenInterpolationStyle    = 'isty';
  2087.     kTweenRegionData            = 'qdrg';
  2088.     kTweenPictureData            = 'PICT';
  2089.  
  2090.     internalComponentErr        = -2070;
  2091.     notImplementedMusicOSErr    = -2071;
  2092.     cantSendToSynthesizerOSErr    = -2072;
  2093.     cantReceiveFromSynthesizerOSErr = -2073;
  2094.     illegalVoiceAllocationOSErr    = -2074;
  2095.     illegalPartOSErr            = -2075;
  2096.     illegalChannelOSErr            = -2076;
  2097.     illegalKnobOSErr            = -2077;
  2098.     illegalKnobValueOSErr        = -2078;
  2099.     illegalInstrumentOSErr        = -2079;
  2100.     illegalControllerOSErr        = -2080;
  2101.     midiManagerAbsentOSErr        = -2081;
  2102.     synthesizerNotRespondingOSErr = -2082;
  2103.     synthesizerOSErr            = -2083;
  2104.     illegalNoteChannelOSErr        = -2084;
  2105.     noteChannelNotAllocatedOSErr = -2085;
  2106.     tunePlayerFullOSErr            = -2086;
  2107.     tuneParseOSErr                = -2087;
  2108.  
  2109. {
  2110. ************************
  2111. * Video Media routines
  2112. *************************
  2113. }
  2114.     videoFlagDontLeanAhead        = $00000001;
  2115.  
  2116. {  use these two routines at your own peril }
  2117. FUNCTION VideoMediaResetStatistics(mh: MediaHandler): ComponentResult;
  2118.     {$IFC NOT GENERATINGCFM}
  2119.     INLINE $2F3C, $0000, $0105, $7000, $A82A;
  2120.     {$ENDC}
  2121. FUNCTION VideoMediaGetStatistics(mh: MediaHandler): ComponentResult;
  2122.     {$IFC NOT GENERATINGCFM}
  2123.     INLINE $2F3C, $0000, $0106, $7000, $A82A;
  2124.     {$ENDC}
  2125. {
  2126. ************************
  2127. * Text Media routines
  2128. *************************
  2129. }
  2130. {  Return displayFlags for TextProc  }
  2131.  
  2132. CONST
  2133.     txtProcDefaultDisplay        = 0;                            {     Use the media's default }
  2134.     txtProcDontDisplay            = 1;                            {     Don't display the text }
  2135.     txtProcDoDisplay            = 2;                            {     Do display the text }
  2136.  
  2137. FUNCTION TextMediaSetTextProc(mh: MediaHandler; TextProc: TextMediaUPP; refcon: LONGINT): ComponentResult;
  2138.     {$IFC NOT GENERATINGCFM}
  2139.     INLINE $2F3C, $0008, $0101, $7000, $A82A;
  2140.     {$ENDC}
  2141. FUNCTION TextMediaAddTextSample(mh: MediaHandler; text: Ptr; size: LONGINT; fontNumber: INTEGER; fontSize: INTEGER; textFace: ByteParameter; VAR textColor: RGBColor; VAR backColor: RGBColor; textJustification: INTEGER; VAR textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  2142.     {$IFC NOT GENERATINGCFM}
  2143.     INLINE $2F3C, $0034, $0102, $7000, $A82A;
  2144.     {$ENDC}
  2145. FUNCTION TextMediaAddTESample(mh: MediaHandler; hTE: TEHandle; VAR backColor: RGBColor; textJustification: INTEGER; VAR textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  2146.     {$IFC NOT GENERATINGCFM}
  2147.     INLINE $2F3C, $0026, $0103, $7000, $A82A;
  2148.     {$ENDC}
  2149. FUNCTION TextMediaAddHiliteSample(mh: MediaHandler; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  2150.     {$IFC NOT GENERATINGCFM}
  2151.     INLINE $2F3C, $0010, $0104, $7000, $A82A;
  2152.     {$ENDC}
  2153.  
  2154. CONST
  2155.     findTextEdgeOK                = $01;                            {  Okay to find text at specified sample time }
  2156.     findTextCaseSensitive        = $02;                            {  Case sensitive search }
  2157.     findTextReverseSearch        = $04;                            {  Search from sampleTime backwards }
  2158.     findTextWrapAround            = $08;                            {  Wrap search when beginning or end of movie is hit }
  2159.     findTextUseOffset            = $10;                            {  Begin search at the given character offset into sample rather than edge }
  2160.  
  2161. FUNCTION TextMediaFindNextText(mh: MediaHandler; text: Ptr; size: LONGINT; findFlags: INTEGER; startTime: TimeValue; VAR foundTime: TimeValue; VAR foundDuration: TimeValue; VAR offset: LONGINT): ComponentResult;
  2162.     {$IFC NOT GENERATINGCFM}
  2163.     INLINE $2F3C, $001A, $0105, $7000, $A82A;
  2164.     {$ENDC}
  2165. FUNCTION TextMediaHiliteTextSample(mh: MediaHandler; sampleTime: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor): ComponentResult;
  2166.     {$IFC NOT GENERATINGCFM}
  2167.     INLINE $2F3C, $000C, $0106, $7000, $A82A;
  2168.     {$ENDC}
  2169.  
  2170. CONST
  2171.     dropShadowOffsetType        = 'drpo';
  2172.     dropShadowTranslucencyType    = 'drpt';
  2173.  
  2174. FUNCTION TextMediaSetTextSampleData(mh: MediaHandler; data: UNIV Ptr; dataType: OSType): ComponentResult;
  2175.     {$IFC NOT GENERATINGCFM}
  2176.     INLINE $2F3C, $0008, $0107, $7000, $A82A;
  2177.     {$ENDC}
  2178. {
  2179. ************************
  2180. * Sprite Media routines
  2181. *************************
  2182. }
  2183. {  flags for HitTestSpriteMedia  }
  2184.  
  2185. CONST
  2186.     spriteHitTestBounds            = $00000001;                    {     point must only be within sprite's bounding box }
  2187.     spriteHitTestImage            = $00000002;                    {   point must be within the shape of the sprite's image }
  2188.  
  2189. {  atom types for sprite media  }
  2190.     kSpriteAtomType                = 'sprt';
  2191.     kSpriteImagesContainerAtomType = 'imct';
  2192.     kSpriteImageAtomType        = 'imag';
  2193.     kSpriteImageDataAtomType    = 'imda';
  2194.     kSpriteSharedDataAtomType    = 'dflt';
  2195.     kSpriteNameAtomType            = 'name';
  2196.  
  2197. FUNCTION SpriteMediaSetProperty(mh: MediaHandler; spriteIndex: INTEGER; propertyType: LONGINT; propertyValue: UNIV Ptr): ComponentResult;
  2198.     {$IFC NOT GENERATINGCFM}
  2199.     INLINE $2F3C, $000A, $0101, $7000, $A82A;
  2200.     {$ENDC}
  2201. FUNCTION SpriteMediaGetProperty(mh: MediaHandler; spriteIndex: INTEGER; propertyType: LONGINT; propertyValue: UNIV Ptr): ComponentResult;
  2202.     {$IFC NOT GENERATINGCFM}
  2203.     INLINE $2F3C, $000A, $0102, $7000, $A82A;
  2204.     {$ENDC}
  2205. FUNCTION SpriteMediaHitTestSprites(mh: MediaHandler; flags: LONGINT; loc: Point; VAR spriteHitIndex: INTEGER): ComponentResult;
  2206.     {$IFC NOT GENERATINGCFM}
  2207.     INLINE $2F3C, $000C, $0103, $7000, $A82A;
  2208.     {$ENDC}
  2209. FUNCTION SpriteMediaCountSprites(mh: MediaHandler; VAR numSprites: INTEGER): ComponentResult;
  2210.     {$IFC NOT GENERATINGCFM}
  2211.     INLINE $2F3C, $0004, $0104, $7000, $A82A;
  2212.     {$ENDC}
  2213. FUNCTION SpriteMediaCountImages(mh: MediaHandler; VAR numImages: INTEGER): ComponentResult;
  2214.     {$IFC NOT GENERATINGCFM}
  2215.     INLINE $2F3C, $0004, $0105, $7000, $A82A;
  2216.     {$ENDC}
  2217. FUNCTION SpriteMediaGetIndImageDescription(mh: MediaHandler; imageIndex: INTEGER; imageDescription: ImageDescriptionHandle): ComponentResult;
  2218.     {$IFC NOT GENERATINGCFM}
  2219.     INLINE $2F3C, $0006, $0106, $7000, $A82A;
  2220.     {$ENDC}
  2221. FUNCTION SpriteMediaGetDisplayedSampleNumber(mh: MediaHandler; VAR sampleNum: LONGINT): ComponentResult;
  2222.     {$IFC NOT GENERATINGCFM}
  2223.     INLINE $2F3C, $0004, $0107, $7000, $A82A;
  2224.     {$ENDC}
  2225. {
  2226. ************************
  2227. * 3D Media routines
  2228. *************************
  2229. }
  2230. FUNCTION Media3DGetNamedObjectList(mh: MediaHandler; VAR objectList: QTAtomContainer): ComponentResult;
  2231.     {$IFC NOT GENERATINGCFM}
  2232.     INLINE $2F3C, $0004, $0101, $7000, $A82A;
  2233.     {$ENDC}
  2234. FUNCTION Media3DGetRendererList(mh: MediaHandler; VAR rendererList: QTAtomContainer): ComponentResult;
  2235.     {$IFC NOT GENERATINGCFM}
  2236.     INLINE $2F3C, $0004, $0102, $7000, $A82A;
  2237.     {$ENDC}
  2238. {
  2239. ***************************************
  2240. *                                        *
  2241. *      M O V I E   C O N T R O L L E R        *
  2242. *                                        *
  2243. ***************************************
  2244. }
  2245.  
  2246. CONST
  2247.     MovieControllerComponentType = 'play';
  2248.  
  2249.  
  2250. TYPE
  2251.     MovieController                        = ComponentInstance;
  2252.  
  2253. CONST
  2254.     mcActionIdle                = 1;                            {  no param }
  2255.     mcActionDraw                = 2;                            {  param is WindowPtr }
  2256.     mcActionActivate            = 3;                            {  no param }
  2257.     mcActionDeactivate            = 4;                            {  no param }
  2258.     mcActionMouseDown            = 5;                            {  param is pointer to EventRecord }
  2259.     mcActionKey                    = 6;                            {  param is pointer to EventRecord }
  2260.     mcActionPlay                = 8;                            {  param is Fixed, play rate }
  2261.     mcActionGoToTime            = 12;                            {  param is TimeRecord }
  2262.     mcActionSetVolume            = 14;                            {  param is a short }
  2263.     mcActionGetVolume            = 15;                            {  param is pointer to a short }
  2264.     mcActionStep                = 18;                            {  param is number of steps (short) }
  2265.     mcActionSetLooping            = 21;                            {  param is Boolean }
  2266.     mcActionGetLooping            = 22;                            {  param is pointer to a Boolean }
  2267.     mcActionSetLoopIsPalindrome    = 23;                            {  param is Boolean }
  2268.     mcActionGetLoopIsPalindrome    = 24;                            {  param is pointer to a Boolean }
  2269.     mcActionSetGrowBoxBounds    = 25;                            {  param is a Rect }
  2270.     mcActionControllerSizeChanged = 26;                            {  no param }
  2271.     mcActionSetSelectionBegin    = 29;                            {  param is TimeRecord }
  2272.     mcActionSetSelectionDuration = 30;                            {  param is TimeRecord, action only taken on set-duration }
  2273.     mcActionSetKeysEnabled        = 32;                            {  param is Boolean }
  2274.     mcActionGetKeysEnabled        = 33;                            {  param is pointer to Boolean }
  2275.     mcActionSetPlaySelection    = 34;                            {  param is Boolean }
  2276.     mcActionGetPlaySelection    = 35;                            {  param is pointer to Boolean }
  2277.     mcActionSetUseBadge            = 36;                            {  param is Boolean }
  2278.     mcActionGetUseBadge            = 37;                            {  param is pointer to Boolean }
  2279.     mcActionSetFlags            = 38;                            {  param is long of flags }
  2280.     mcActionGetFlags            = 39;                            {  param is pointer to a long of flags }
  2281.     mcActionSetPlayEveryFrame    = 40;                            {  param is Boolean }
  2282.     mcActionGetPlayEveryFrame    = 41;                            {  param is pointer to Boolean }
  2283.     mcActionGetPlayRate            = 42;                            {  param is pointer to Fixed }
  2284.     mcActionShowBalloon            = 43;                            {  param is a pointer to a boolean. set to false to stop balloon }
  2285.     mcActionBadgeClick            = 44;                            {  param is pointer to Boolean. set to false to ignore click }
  2286.     mcActionMovieClick            = 45;                            {  param is pointer to event record. change “what” to nullEvt to kill click }
  2287.     mcActionSuspend                = 46;                            {  no param }
  2288.     mcActionResume                = 47;                            {  no param }
  2289.     mcActionSetControllerKeysEnabled = 48;                        {  param is Boolean }
  2290.     mcActionGetTimeSliderRect    = 49;                            {  param is pointer to rect }
  2291.     mcActionMovieEdited            = 50;                            {  no param }
  2292.     mcActionGetDragEnabled        = 51;                            {  param is pointer to Boolean }
  2293.     mcActionSetDragEnabled        = 52;                            {  param is Boolean }
  2294.     mcActionGetSelectionBegin    = 53;                            {  param is TimeRecord }
  2295.     mcActionGetSelectionDuration = 54;                            {  param is TimeRecord }
  2296.     mcActionPrerollAndPlay        = 55;                            {  param is Fixed, play rate }
  2297.     mcActionGetCursorSettingEnabled = 56;                        {  param is pointer to Boolean }
  2298.     mcActionSetCursorSettingEnabled = 57;                        {  param is Boolean }
  2299.     mcActionSetColorTable        = 58;                            {  param is CTabHandle }
  2300.  
  2301.  
  2302. TYPE
  2303.     mcAction                            = INTEGER;
  2304.  
  2305. CONST
  2306.     mcFlagSuppressMovieFrame    = $01;
  2307.     mcFlagSuppressStepButtons    = $02;
  2308.     mcFlagSuppressSpeakerButton    = $04;
  2309.     mcFlagsUseWindowPalette        = $08;
  2310.     mcFlagsDontInvalidate        = $10;
  2311.  
  2312.     mcPositionDontInvalidate    = $20;
  2313.  
  2314.  
  2315. TYPE
  2316.     mcFlags                                = LONGINT;
  2317.     MCActionFilterProcPtr = ProcPtr;  { FUNCTION MCActionFilter(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr): BOOLEAN; }
  2318.  
  2319.     MCActionFilterWithRefConProcPtr = ProcPtr;  { FUNCTION MCActionFilterWithRefCon(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT): BOOLEAN; }
  2320.  
  2321.     MCActionFilterUPP = UniversalProcPtr;
  2322.     MCActionFilterWithRefConUPP = UniversalProcPtr;
  2323. {
  2324.     menu related stuff
  2325. }
  2326.  
  2327. CONST
  2328.     mcInfoUndoAvailable            = $01;
  2329.     mcInfoCutAvailable            = $02;
  2330.     mcInfoCopyAvailable            = $04;
  2331.     mcInfoPasteAvailable        = $08;
  2332.     mcInfoClearAvailable        = $10;
  2333.     mcInfoHasSound                = $20;
  2334.     mcInfoIsPlaying                = $40;
  2335.     mcInfoIsLooping                = $80;
  2336.     mcInfoIsInPalindrome        = $0100;
  2337.     mcInfoEditingEnabled        = $0200;
  2338.     mcInfoMovieIsInteractive    = $0400;
  2339.  
  2340. {  menu item codes }
  2341.     mcMenuUndo                    = 1;
  2342.     mcMenuCut                    = 3;
  2343.     mcMenuCopy                    = 4;
  2344.     mcMenuPaste                    = 5;
  2345.     mcMenuClear                    = 6;
  2346.  
  2347. {  target management  }
  2348. FUNCTION MCSetMovie(mc: MovieController; theMovie: Movie; movieWindow: WindowPtr; where: Point): ComponentResult;
  2349.     {$IFC NOT GENERATINGCFM}
  2350.     INLINE $2F3C, $000C, $0002, $7000, $A82A;
  2351.     {$ENDC}
  2352. FUNCTION MCGetIndMovie(mc: MovieController; index: INTEGER): Movie;
  2353.     {$IFC NOT GENERATINGCFM}
  2354.     INLINE $2F3C, $0002, $0005, $7000, $A82A;
  2355.     {$ENDC}
  2356. FUNCTION MCRemoveAllMovies(mc: MovieController): ComponentResult;
  2357.     {$IFC NOT GENERATINGCFM}
  2358.     INLINE $2F3C, $0000, $0006, $7000, $A82A;
  2359.     {$ENDC}
  2360. FUNCTION MCRemoveAMovie(mc: MovieController; m: Movie): ComponentResult;
  2361.     {$IFC NOT GENERATINGCFM}
  2362.     INLINE $2F3C, $0004, $0003, $7000, $A82A;
  2363.     {$ENDC}
  2364. FUNCTION MCRemoveMovie(mc: MovieController): ComponentResult;
  2365.     {$IFC NOT GENERATINGCFM}
  2366.     INLINE $2F3C, $0000, $0006, $7000, $A82A;
  2367.     {$ENDC}
  2368. {  event handling etc.  }
  2369. FUNCTION MCIsPlayerEvent(mc: MovieController; {CONST}VAR e: EventRecord): ComponentResult;
  2370.     {$IFC NOT GENERATINGCFM}
  2371.     INLINE $2F3C, $0004, $0007, $7000, $A82A;
  2372.     {$ENDC}
  2373. {  obsolete. use MCSetActionFilterWithRefCon instead.  }
  2374. FUNCTION MCSetActionFilter(mc: MovieController; blob: MCActionFilterUPP): ComponentResult;
  2375.     {$IFC NOT GENERATINGCFM}
  2376.     INLINE $2F3C, $0004, $0008, $7000, $A82A;
  2377.     {$ENDC}
  2378. {
  2379.     proc is of the form:
  2380.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  2381.     proc returns TRUE if it handles the action, FALSE if not
  2382.     action is passed as a VAR so that it could be changed by filter
  2383.     this is consistent with the current dialog manager stuff
  2384.     params is any potential parameters that go with the action
  2385.         such as set playback rate to xxx.
  2386. }
  2387. FUNCTION MCDoAction(mc: MovieController; action: INTEGER; params: UNIV Ptr): ComponentResult;
  2388.     {$IFC NOT GENERATINGCFM}
  2389.     INLINE $2F3C, $0006, $0009, $7000, $A82A;
  2390.     {$ENDC}
  2391. {  state type things  }
  2392. FUNCTION MCSetControllerAttached(mc: MovieController; attach: BOOLEAN): ComponentResult;
  2393.     {$IFC NOT GENERATINGCFM}
  2394.     INLINE $2F3C, $0002, $000A, $7000, $A82A;
  2395.     {$ENDC}
  2396. FUNCTION MCIsControllerAttached(mc: MovieController): ComponentResult;
  2397.     {$IFC NOT GENERATINGCFM}
  2398.     INLINE $2F3C, $0000, $000B, $7000, $A82A;
  2399.     {$ENDC}
  2400. FUNCTION MCSetControllerPort(mc: MovieController; gp: CGrafPtr): ComponentResult;
  2401.     {$IFC NOT GENERATINGCFM}
  2402.     INLINE $2F3C, $0004, $000C, $7000, $A82A;
  2403.     {$ENDC}
  2404. FUNCTION MCGetControllerPort(mc: MovieController): CGrafPtr;
  2405.     {$IFC NOT GENERATINGCFM}
  2406.     INLINE $2F3C, $0000, $000D, $7000, $A82A;
  2407.     {$ENDC}
  2408. FUNCTION MCSetVisible(mc: MovieController; visible: BOOLEAN): ComponentResult;
  2409.     {$IFC NOT GENERATINGCFM}
  2410.     INLINE $2F3C, $0002, $000E, $7000, $A82A;
  2411.     {$ENDC}
  2412. FUNCTION MCGetVisible(mc: MovieController): ComponentResult;
  2413.     {$IFC NOT GENERATINGCFM}
  2414.     INLINE $2F3C, $0000, $000F, $7000, $A82A;
  2415.     {$ENDC}
  2416. FUNCTION MCGetControllerBoundsRect(mc: MovieController; VAR bounds: Rect): ComponentResult;
  2417.     {$IFC NOT GENERATINGCFM}
  2418.     INLINE $2F3C, $0004, $0010, $7000, $A82A;
  2419.     {$ENDC}
  2420. FUNCTION MCSetControllerBoundsRect(mc: MovieController; {CONST}VAR bounds: Rect): ComponentResult;
  2421.     {$IFC NOT GENERATINGCFM}
  2422.     INLINE $2F3C, $0004, $0011, $7000, $A82A;
  2423.     {$ENDC}
  2424. FUNCTION MCGetControllerBoundsRgn(mc: MovieController): RgnHandle;
  2425.     {$IFC NOT GENERATINGCFM}
  2426.     INLINE $2F3C, $0000, $0012, $7000, $A82A;
  2427.     {$ENDC}
  2428. FUNCTION MCGetWindowRgn(mc: MovieController; w: WindowPtr): RgnHandle;
  2429.     {$IFC NOT GENERATINGCFM}
  2430.     INLINE $2F3C, $0004, $0013, $7000, $A82A;
  2431.     {$ENDC}
  2432. {  other stuff  }
  2433. FUNCTION MCMovieChanged(mc: MovieController; m: Movie): ComponentResult;
  2434.     {$IFC NOT GENERATINGCFM}
  2435.     INLINE $2F3C, $0004, $0014, $7000, $A82A;
  2436.     {$ENDC}
  2437. {
  2438.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  2439.         can update our graphical (and internal) state accordingly.
  2440. }
  2441. FUNCTION MCSetDuration(mc: MovieController; duration: TimeValue): ComponentResult;
  2442.     {$IFC NOT GENERATINGCFM}
  2443.     INLINE $2F3C, $0004, $0015, $7000, $A82A;
  2444.     {$ENDC}
  2445. {
  2446.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  2447.         or MCSetMovie is called
  2448. }
  2449. FUNCTION MCGetCurrentTime(mc: MovieController; VAR scale: TimeScale): TimeValue;
  2450.     {$IFC NOT GENERATINGCFM}
  2451.     INLINE $2F3C, $0004, $0016, $7000, $A82A;
  2452.     {$ENDC}
  2453. {
  2454.     returns the time value and the time scale it is on. if there are no movies, the
  2455.         time scale is passed back as 0. scale is an optional parameter
  2456.  
  2457. }
  2458. FUNCTION MCNewAttachedController(mc: MovieController; theMovie: Movie; w: WindowPtr; where: Point): ComponentResult;
  2459.     {$IFC NOT GENERATINGCFM}
  2460.     INLINE $2F3C, $000C, $0017, $7000, $A82A;
  2461.     {$ENDC}
  2462. {
  2463.     makes theMovie the only movie attached to the controller. makes the controller visible.
  2464.     the window and where parameters are passed a long to MCSetMovie and behave as
  2465.     described there
  2466. }
  2467. FUNCTION MCDraw(mc: MovieController; w: WindowPtr): ComponentResult;
  2468.     {$IFC NOT GENERATINGCFM}
  2469.     INLINE $2F3C, $0004, $0018, $7000, $A82A;
  2470.     {$ENDC}
  2471. FUNCTION MCActivate(mc: MovieController; w: WindowPtr; activate: BOOLEAN): ComponentResult;
  2472.     {$IFC NOT GENERATINGCFM}
  2473.     INLINE $2F3C, $0006, $0019, $7000, $A82A;
  2474.     {$ENDC}
  2475. FUNCTION MCIdle(mc: MovieController): ComponentResult;
  2476.     {$IFC NOT GENERATINGCFM}
  2477.     INLINE $2F3C, $0000, $001A, $7000, $A82A;
  2478.     {$ENDC}
  2479. FUNCTION MCKey(mc: MovieController; key: SInt8; modifiers: LONGINT): ComponentResult;
  2480.     {$IFC NOT GENERATINGCFM}
  2481.     INLINE $2F3C, $0006, $001B, $7000, $A82A;
  2482.     {$ENDC}
  2483. FUNCTION MCClick(mc: MovieController; w: WindowPtr; where: Point; when: LONGINT; modifiers: LONGINT): ComponentResult;
  2484.     {$IFC NOT GENERATINGCFM}
  2485.     INLINE $2F3C, $0010, $001C, $7000, $A82A;
  2486.     {$ENDC}
  2487. {
  2488.     calls for editing
  2489. }
  2490. FUNCTION MCEnableEditing(mc: MovieController; enabled: BOOLEAN): ComponentResult;
  2491.     {$IFC NOT GENERATINGCFM}
  2492.     INLINE $2F3C, $0002, $001D, $7000, $A82A;
  2493.     {$ENDC}
  2494. FUNCTION MCIsEditingEnabled(mc: MovieController): LONGINT;
  2495.     {$IFC NOT GENERATINGCFM}
  2496.     INLINE $2F3C, $0000, $001E, $7000, $A82A;
  2497.     {$ENDC}
  2498. FUNCTION MCCopy(mc: MovieController): Movie;
  2499.     {$IFC NOT GENERATINGCFM}
  2500.     INLINE $2F3C, $0000, $001F, $7000, $A82A;
  2501.     {$ENDC}
  2502. FUNCTION MCCut(mc: MovieController): Movie;
  2503.     {$IFC NOT GENERATINGCFM}
  2504.     INLINE $2F3C, $0000, $0020, $7000, $A82A;
  2505.     {$ENDC}
  2506. FUNCTION MCPaste(mc: MovieController; srcMovie: Movie): ComponentResult;
  2507.     {$IFC NOT GENERATINGCFM}
  2508.     INLINE $2F3C, $0004, $0021, $7000, $A82A;
  2509.     {$ENDC}
  2510. FUNCTION MCClear(mc: MovieController): ComponentResult;
  2511.     {$IFC NOT GENERATINGCFM}
  2512.     INLINE $2F3C, $0000, $0022, $7000, $A82A;
  2513.     {$ENDC}
  2514. FUNCTION MCUndo(mc: MovieController): ComponentResult;
  2515.     {$IFC NOT GENERATINGCFM}
  2516.     INLINE $2F3C, $0000, $0023, $7000, $A82A;
  2517.     {$ENDC}
  2518. {
  2519.  *    somewhat special stuff
  2520. }
  2521. FUNCTION MCPositionController(mc: MovieController; {CONST}VAR movieRect: Rect; {CONST}VAR controllerRect: Rect; someFlags: LONGINT): ComponentResult;
  2522.     {$IFC NOT GENERATINGCFM}
  2523.     INLINE $2F3C, $000C, $0024, $7000, $A82A;
  2524.     {$ENDC}
  2525. FUNCTION MCGetControllerInfo(mc: MovieController; VAR someFlags: LONGINT): ComponentResult;
  2526.     {$IFC NOT GENERATINGCFM}
  2527.     INLINE $2F3C, $0004, $0025, $7000, $A82A;
  2528.     {$ENDC}
  2529. FUNCTION MCSetClip(mc: MovieController; theClip: RgnHandle; movieClip: RgnHandle): ComponentResult;
  2530.     {$IFC NOT GENERATINGCFM}
  2531.     INLINE $2F3C, $0008, $0028, $7000, $A82A;
  2532.     {$ENDC}
  2533. FUNCTION MCGetClip(mc: MovieController; VAR theClip: RgnHandle; VAR movieClip: RgnHandle): ComponentResult;
  2534.     {$IFC NOT GENERATINGCFM}
  2535.     INLINE $2F3C, $0008, $0029, $7000, $A82A;
  2536.     {$ENDC}
  2537. FUNCTION MCDrawBadge(mc: MovieController; movieRgn: RgnHandle; VAR badgeRgn: RgnHandle): ComponentResult;
  2538.     {$IFC NOT GENERATINGCFM}
  2539.     INLINE $2F3C, $0008, $002A, $7000, $A82A;
  2540.     {$ENDC}
  2541. FUNCTION MCSetUpEditMenu(mc: MovieController; modifiers: LONGINT; mh: MenuHandle): ComponentResult;
  2542.     {$IFC NOT GENERATINGCFM}
  2543.     INLINE $2F3C, $0008, $002B, $7000, $A82A;
  2544.     {$ENDC}
  2545. FUNCTION MCGetMenuString(mc: MovieController; modifiers: LONGINT; item: INTEGER; VAR aString: Str255): ComponentResult;
  2546.     {$IFC NOT GENERATINGCFM}
  2547.     INLINE $2F3C, $000A, $002C, $7000, $A82A;
  2548.     {$ENDC}
  2549. FUNCTION MCSetActionFilterWithRefCon(mc: MovieController; blob: MCActionFilterWithRefConUPP; refCon: LONGINT): ComponentResult;
  2550.     {$IFC NOT GENERATINGCFM}
  2551.     INLINE $2F3C, $0008, $002D, $7000, $A82A;
  2552.     {$ENDC}
  2553. FUNCTION MCPtInController(mc: MovieController; thePt: Point; VAR inController: BOOLEAN): ComponentResult;
  2554.     {$IFC NOT GENERATINGCFM}
  2555.     INLINE $2F3C, $0008, $002E, $7000, $A82A;
  2556.     {$ENDC}
  2557. FUNCTION MCInvalidate(mc: MovieController; w: WindowPtr; invalidRgn: RgnHandle): ComponentResult;
  2558.     {$IFC NOT GENERATINGCFM}
  2559.     INLINE $2F3C, $0008, $002F, $7000, $A82A;
  2560.     {$ENDC}
  2561. {
  2562. ***************************************
  2563. *                                        *
  2564. *          T  I  M  E  B  A  S  E            *
  2565. *                                        *
  2566. ***************************************
  2567. }
  2568. FUNCTION NewTimeBase: TimeBase;
  2569.     {$IFC NOT GENERATINGCFM}
  2570.     INLINE $303C, $00A5, $AAAA;
  2571.     {$ENDC}
  2572. PROCEDURE DisposeTimeBase(tb: TimeBase);
  2573.     {$IFC NOT GENERATINGCFM}
  2574.     INLINE $303C, $00B6, $AAAA;
  2575.     {$ENDC}
  2576. FUNCTION GetTimeBaseTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2577.     {$IFC NOT GENERATINGCFM}
  2578.     INLINE $303C, $00A6, $AAAA;
  2579.     {$ENDC}
  2580. PROCEDURE SetTimeBaseTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2581.     {$IFC NOT GENERATINGCFM}
  2582.     INLINE $303C, $00A7, $AAAA;
  2583.     {$ENDC}
  2584. PROCEDURE SetTimeBaseValue(tb: TimeBase; t: TimeValue; s: TimeScale);
  2585.     {$IFC NOT GENERATINGCFM}
  2586.     INLINE $303C, $00A8, $AAAA;
  2587.     {$ENDC}
  2588. FUNCTION GetTimeBaseRate(tb: TimeBase): Fixed;
  2589.     {$IFC NOT GENERATINGCFM}
  2590.     INLINE $303C, $00A9, $AAAA;
  2591.     {$ENDC}
  2592. PROCEDURE SetTimeBaseRate(tb: TimeBase; r: Fixed);
  2593.     {$IFC NOT GENERATINGCFM}
  2594.     INLINE $303C, $00AA, $AAAA;
  2595.     {$ENDC}
  2596. FUNCTION GetTimeBaseStartTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2597.     {$IFC NOT GENERATINGCFM}
  2598.     INLINE $303C, $00AB, $AAAA;
  2599.     {$ENDC}
  2600. PROCEDURE SetTimeBaseStartTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2601.     {$IFC NOT GENERATINGCFM}
  2602.     INLINE $303C, $00AC, $AAAA;
  2603.     {$ENDC}
  2604. FUNCTION GetTimeBaseStopTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2605.     {$IFC NOT GENERATINGCFM}
  2606.     INLINE $303C, $00AD, $AAAA;
  2607.     {$ENDC}
  2608. PROCEDURE SetTimeBaseStopTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2609.     {$IFC NOT GENERATINGCFM}
  2610.     INLINE $303C, $00AE, $AAAA;
  2611.     {$ENDC}
  2612. FUNCTION GetTimeBaseFlags(tb: TimeBase): LONGINT;
  2613.     {$IFC NOT GENERATINGCFM}
  2614.     INLINE $303C, $00B1, $AAAA;
  2615.     {$ENDC}
  2616. PROCEDURE SetTimeBaseFlags(tb: TimeBase; timeBaseFlags: LONGINT);
  2617.     {$IFC NOT GENERATINGCFM}
  2618.     INLINE $303C, $00B2, $AAAA;
  2619.     {$ENDC}
  2620. PROCEDURE SetTimeBaseMasterTimeBase(slave: TimeBase; master: TimeBase; {CONST}VAR slaveZero: TimeRecord);
  2621.     {$IFC NOT GENERATINGCFM}
  2622.     INLINE $303C, $00B4, $AAAA;
  2623.     {$ENDC}
  2624. FUNCTION GetTimeBaseMasterTimeBase(tb: TimeBase): TimeBase;
  2625.     {$IFC NOT GENERATINGCFM}
  2626.     INLINE $303C, $00AF, $AAAA;
  2627.     {$ENDC}
  2628. PROCEDURE SetTimeBaseMasterClock(slave: TimeBase; clockMeister: Component; {CONST}VAR slaveZero: TimeRecord);
  2629.     {$IFC NOT GENERATINGCFM}
  2630.     INLINE $303C, $00B3, $AAAA;
  2631.     {$ENDC}
  2632. FUNCTION GetTimeBaseMasterClock(tb: TimeBase): ComponentInstance;
  2633.     {$IFC NOT GENERATINGCFM}
  2634.     INLINE $303C, $00B0, $AAAA;
  2635.     {$ENDC}
  2636. PROCEDURE ConvertTime(VAR inout: TimeRecord; newBase: TimeBase);
  2637.     {$IFC NOT GENERATINGCFM}
  2638.     INLINE $303C, $00B5, $AAAA;
  2639.     {$ENDC}
  2640. PROCEDURE ConvertTimeScale(VAR inout: TimeRecord; newScale: TimeScale);
  2641.     {$IFC NOT GENERATINGCFM}
  2642.     INLINE $303C, $00B7, $AAAA;
  2643.     {$ENDC}
  2644. PROCEDURE AddTime(VAR dst: TimeRecord; {CONST}VAR src: TimeRecord);
  2645.     {$IFC NOT GENERATINGCFM}
  2646.     INLINE $303C, $010C, $AAAA;
  2647.     {$ENDC}
  2648. PROCEDURE SubtractTime(VAR dst: TimeRecord; {CONST}VAR src: TimeRecord);
  2649.     {$IFC NOT GENERATINGCFM}
  2650.     INLINE $303C, $010D, $AAAA;
  2651.     {$ENDC}
  2652. FUNCTION GetTimeBaseStatus(tb: TimeBase; VAR unpinnedTime: TimeRecord): LONGINT;
  2653.     {$IFC NOT GENERATINGCFM}
  2654.     INLINE $303C, $010B, $AAAA;
  2655.     {$ENDC}
  2656. PROCEDURE SetTimeBaseZero(tb: TimeBase; VAR zero: TimeRecord);
  2657.     {$IFC NOT GENERATINGCFM}
  2658.     INLINE $303C, $0128, $AAAA;
  2659.     {$ENDC}
  2660. FUNCTION GetTimeBaseEffectiveRate(tb: TimeBase): Fixed;
  2661.     {$IFC NOT GENERATINGCFM}
  2662.     INLINE $303C, $0124, $AAAA;
  2663.     {$ENDC}
  2664. {
  2665. ***************************************
  2666. *                                        *
  2667. *          C  A  L  L  B  A  C  K             *
  2668. *                                        *
  2669. ***************************************
  2670. }
  2671. FUNCTION NewCallBack(tb: TimeBase; cbType: INTEGER): QTCallBack;
  2672.     {$IFC NOT GENERATINGCFM}
  2673.     INLINE $303C, $00EB, $AAAA;
  2674.     {$ENDC}
  2675. PROCEDURE DisposeCallBack(cb: QTCallBack);
  2676.     {$IFC NOT GENERATINGCFM}
  2677.     INLINE $303C, $00EC, $AAAA;
  2678.     {$ENDC}
  2679. FUNCTION GetCallBackType(cb: QTCallBack): INTEGER;
  2680.     {$IFC NOT GENERATINGCFM}
  2681.     INLINE $303C, $00ED, $AAAA;
  2682.     {$ENDC}
  2683. FUNCTION GetCallBackTimeBase(cb: QTCallBack): TimeBase;
  2684.     {$IFC NOT GENERATINGCFM}
  2685.     INLINE $303C, $00EE, $AAAA;
  2686.     {$ENDC}
  2687. FUNCTION CallMeWhen(cb: QTCallBack; callBackProc: QTCallBackUPP; refCon: LONGINT; param1: LONGINT; param2: LONGINT; param3: LONGINT): OSErr;
  2688.     {$IFC NOT GENERATINGCFM}
  2689.     INLINE $303C, $00B8, $AAAA;
  2690.     {$ENDC}
  2691. PROCEDURE CancelCallBack(cb: QTCallBack);
  2692.     {$IFC NOT GENERATINGCFM}
  2693.     INLINE $303C, $00B9, $AAAA;
  2694.     {$ENDC}
  2695. {
  2696. ***************************************
  2697. *                                        *
  2698. *          C L O C K   C A L L B A C K      *
  2699. *                S U P P O R T              *
  2700. *                                        *
  2701. ***************************************
  2702. }
  2703. FUNCTION AddCallBackToTimeBase(cb: QTCallBack): OSErr;
  2704.     {$IFC NOT GENERATINGCFM}
  2705.     INLINE $303C, $0129, $AAAA;
  2706.     {$ENDC}
  2707. FUNCTION RemoveCallBackFromTimeBase(cb: QTCallBack): OSErr;
  2708.     {$IFC NOT GENERATINGCFM}
  2709.     INLINE $303C, $012A, $AAAA;
  2710.     {$ENDC}
  2711. FUNCTION GetFirstCallBack(tb: TimeBase): QTCallBack;
  2712.     {$IFC NOT GENERATINGCFM}
  2713.     INLINE $303C, $012B, $AAAA;
  2714.     {$ENDC}
  2715. FUNCTION GetNextCallBack(cb: QTCallBack): QTCallBack;
  2716.     {$IFC NOT GENERATINGCFM}
  2717.     INLINE $303C, $012C, $AAAA;
  2718.     {$ENDC}
  2719. PROCEDURE ExecuteCallBack(cb: QTCallBack);
  2720.     {$IFC NOT GENERATINGCFM}
  2721.     INLINE $303C, $012D, $AAAA;
  2722.     {$ENDC}
  2723. {
  2724. ***************************************
  2725. *                                        *
  2726. *          S Y N C    T A S K S              *
  2727. *                S U P P O R T              *
  2728. *                                        *
  2729. ***************************************
  2730. }
  2731. FUNCTION QueueSyncTask(task: QTSyncTaskPtr): OSErr;
  2732.     {$IFC NOT GENERATINGCFM}
  2733.     INLINE $303C, $0203, $AAAA;
  2734.     {$ENDC}
  2735. FUNCTION DequeueSyncTask(qElem: QTSyncTaskPtr): OSErr;
  2736.     {$IFC NOT GENERATINGCFM}
  2737.     INLINE $303C, $0204, $AAAA;
  2738.     {$ENDC}
  2739. {  UPP call backs  }
  2740.  
  2741. CONST
  2742.     uppMovieRgnCoverProcInfo = $00000FE0;
  2743.     uppMovieProgressProcInfo = $0000FAE0;
  2744.     uppMovieDrawingCompleteProcInfo = $000003E0;
  2745.     uppTrackTransferProcInfo = $000003E0;
  2746.     uppGetMovieProcInfo = $00003FE0;
  2747.     uppMoviePreviewCallOutProcInfo = $000000D0;
  2748.     uppTextMediaProcInfo = $00003FE0;
  2749.     uppQTCallBackProcInfo = $000003C0;
  2750.     uppQTSyncTaskProcInfo = $000000C0;
  2751.     uppMCActionFilterProcInfo = $00000FD0;
  2752.     uppMCActionFilterWithRefConProcInfo = $00003ED0;
  2753.  
  2754. FUNCTION NewMovieRgnCoverProc(userRoutine: MovieRgnCoverProcPtr): MovieRgnCoverUPP;
  2755.     {$IFC NOT GENERATINGCFM }
  2756.     INLINE $2E9F;
  2757.     {$ENDC}
  2758.  
  2759. FUNCTION NewMovieProgressProc(userRoutine: MovieProgressProcPtr): MovieProgressUPP;
  2760.     {$IFC NOT GENERATINGCFM }
  2761.     INLINE $2E9F;
  2762.     {$ENDC}
  2763.  
  2764. FUNCTION NewMovieDrawingCompleteProc(userRoutine: MovieDrawingCompleteProcPtr): MovieDrawingCompleteUPP;
  2765.     {$IFC NOT GENERATINGCFM }
  2766.     INLINE $2E9F;
  2767.     {$ENDC}
  2768.  
  2769. FUNCTION NewTrackTransferProc(userRoutine: TrackTransferProcPtr): TrackTransferUPP;
  2770.     {$IFC NOT GENERATINGCFM }
  2771.     INLINE $2E9F;
  2772.     {$ENDC}
  2773.  
  2774. FUNCTION NewGetMovieProc(userRoutine: GetMovieProcPtr): GetMovieUPP;
  2775.     {$IFC NOT GENERATINGCFM }
  2776.     INLINE $2E9F;
  2777.     {$ENDC}
  2778.  
  2779. FUNCTION NewMoviePreviewCallOutProc(userRoutine: MoviePreviewCallOutProcPtr): MoviePreviewCallOutUPP;
  2780.     {$IFC NOT GENERATINGCFM }
  2781.     INLINE $2E9F;
  2782.     {$ENDC}
  2783.  
  2784. FUNCTION NewTextMediaProc(userRoutine: TextMediaProcPtr): TextMediaUPP;
  2785.     {$IFC NOT GENERATINGCFM }
  2786.     INLINE $2E9F;
  2787.     {$ENDC}
  2788.  
  2789. FUNCTION NewQTCallBackProc(userRoutine: QTCallBackProcPtr): QTCallBackUPP;
  2790.     {$IFC NOT GENERATINGCFM }
  2791.     INLINE $2E9F;
  2792.     {$ENDC}
  2793.  
  2794. FUNCTION NewQTSyncTaskProc(userRoutine: QTSyncTaskProcPtr): QTSyncTaskUPP;
  2795.     {$IFC NOT GENERATINGCFM }
  2796.     INLINE $2E9F;
  2797.     {$ENDC}
  2798.  
  2799. FUNCTION NewMCActionFilterProc(userRoutine: MCActionFilterProcPtr): MCActionFilterUPP;
  2800.     {$IFC NOT GENERATINGCFM }
  2801.     INLINE $2E9F;
  2802.     {$ENDC}
  2803.  
  2804. FUNCTION NewMCActionFilterWithRefConProc(userRoutine: MCActionFilterWithRefConProcPtr): MCActionFilterWithRefConUPP;
  2805.     {$IFC NOT GENERATINGCFM }
  2806.     INLINE $2E9F;
  2807.     {$ENDC}
  2808.  
  2809. FUNCTION CallMovieRgnCoverProc(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT; userRoutine: MovieRgnCoverUPP): OSErr;
  2810.     {$IFC NOT GENERATINGCFM}
  2811.     INLINE $205F, $4E90;
  2812.     {$ENDC}
  2813.  
  2814. FUNCTION CallMovieProgressProc(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT; userRoutine: MovieProgressUPP): OSErr;
  2815.     {$IFC NOT GENERATINGCFM}
  2816.     INLINE $205F, $4E90;
  2817.     {$ENDC}
  2818.  
  2819. FUNCTION CallMovieDrawingCompleteProc(theMovie: Movie; refCon: LONGINT; userRoutine: MovieDrawingCompleteUPP): OSErr;
  2820.     {$IFC NOT GENERATINGCFM}
  2821.     INLINE $205F, $4E90;
  2822.     {$ENDC}
  2823.  
  2824. FUNCTION CallTrackTransferProc(t: Track; refCon: LONGINT; userRoutine: TrackTransferUPP): OSErr;
  2825.     {$IFC NOT GENERATINGCFM}
  2826.     INLINE $205F, $4E90;
  2827.     {$ENDC}
  2828.  
  2829. FUNCTION CallGetMovieProc(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr; userRoutine: GetMovieUPP): OSErr;
  2830.     {$IFC NOT GENERATINGCFM}
  2831.     INLINE $205F, $4E90;
  2832.     {$ENDC}
  2833.  
  2834. FUNCTION CallMoviePreviewCallOutProc(refcon: LONGINT; userRoutine: MoviePreviewCallOutUPP): BOOLEAN;
  2835.     {$IFC NOT GENERATINGCFM}
  2836.     INLINE $205F, $4E90;
  2837.     {$ENDC}
  2838.  
  2839. FUNCTION CallTextMediaProc(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT; userRoutine: TextMediaUPP): OSErr;
  2840.     {$IFC NOT GENERATINGCFM}
  2841.     INLINE $205F, $4E90;
  2842.     {$ENDC}
  2843.  
  2844. PROCEDURE CallQTCallBackProc(cb: QTCallBack; refCon: LONGINT; userRoutine: QTCallBackUPP);
  2845.     {$IFC NOT GENERATINGCFM}
  2846.     INLINE $205F, $4E90;
  2847.     {$ENDC}
  2848.  
  2849. PROCEDURE CallQTSyncTaskProc(task: UNIV Ptr; userRoutine: QTSyncTaskUPP);
  2850.     {$IFC NOT GENERATINGCFM}
  2851.     INLINE $205F, $4E90;
  2852.     {$ENDC}
  2853.  
  2854. FUNCTION CallMCActionFilterProc(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr; userRoutine: MCActionFilterUPP): BOOLEAN;
  2855.     {$IFC NOT GENERATINGCFM}
  2856.     INLINE $205F, $4E90;
  2857.     {$ENDC}
  2858.  
  2859. FUNCTION CallMCActionFilterWithRefConProc(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT; userRoutine: MCActionFilterWithRefConUPP): BOOLEAN;
  2860.     {$IFC NOT GENERATINGCFM}
  2861.     INLINE $205F, $4E90;
  2862.     {$ENDC}
  2863.  
  2864. {$ALIGN RESET}
  2865. {$POP}
  2866.  
  2867. {$SETC UsingIncludes := MoviesIncludes}
  2868.  
  2869. {$ENDC} {__MOVIES__}
  2870.  
  2871. {$IFC NOT UsingIncludes}
  2872.  END.
  2873. {$ENDC}
  2874.